![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
работа с потоками
Лёха © (2009-06-13 17:02:00)Добрый день!
Скачал пример работы с потоками, а он с использованием MCK, мне нужно в чистом KOL.
вот кусок:
var
formThread: PThread;
function ThreadExecute(Sender: PThread): Integer;
begin
// тут выполняем какие-либо действия
end;
begin
form := NewForm(Applet, 'Окно');
Run(form);
formThread := NewThread;
formThread.OnExecute := ThreadExecute;
end;
получаю такое:
[Error] Project99.dpr(39): Incompatible types: 'method pointer and regular procedure'
через MakeMethod тоже не работает:
[Error] Project99.dpr(39): Incompatible types: 'TOnThreadExecute' and 'TMethod'
помогите плиз, как этот метод присвоить?
Заранее спасиб!!!
abyss_by (2009-06-13 22:58:00) [1]var
MyThread: PThread;
procedure TForm1.FormThreadShow;
begin
if Assigned(ToolTipThread) then
MyThread.Terminate;
MyThread := NewThreadAutofree(ShowThread);//ShowThread будет ниже
MyThread.PriorityClass := THREAD_PRIORITY_IDLE;// тут на усмотрение конечно
MyThread.Threadpriority := THREAD_PRIORITY_LOWEST;
end;
function TForm1.ShowThread(Sender: pThread): integer;
begin
//tratata
end;
Galkov (2009-06-13 20:40:00) [2]1) Да не вопрос, можно и так
2) Есть такой термин - чит. Это то, чем не следует пользоваться без крайней необходимости :)
Лёха (2009-06-13 17:35:00) [3]спасибо! но я сделал чуть по-другому:
formThread.OnExecute := TOnThreadExecute(MakeMethod(nil, @ThreadExecute));
Galkov (2009-06-13 17:22:00) [4]
Program ThreadTest;
uses windows,kol;
type Tsdk=object
Thread: PThread;
function ThreadExecute(Sender: PThread): Integer;
end;
var SDK:Tsdk;
function Tsdk.ThreadExecute(Sender: PThread): Integer;
begin
// тут выполняем какие-либо действия
Result := 0;
end;
begin
Applet := NewForm(Applet, 'Окно');
SDK.Thread := NewThread;
SDK.Thread.OnExecute := SDK.ThreadExecute;
Run(Applet);
end.