-
Чо делать с synchronize(???) процедуру без параметров не принимает требует метод потока Это как панимать ?
-
Как написано, так и понимать. В качестве параметра в Synchronize передается имя какого-либо метода этого же потока. Например: type
TMyThread = object( TThtead )
private
procedure MyProc;
implementation
function TMyThread.Execute : integer;
begin
Synchronize( MyProc );
end;
procedure TMyThread.MyProc;
begin
end;
-
Причем тут "этого же потока" :shock:
-
а что в кол можно переопределять паток ? и зачем если он хавает метод формы ? и зачем метод когда в API просто DWORD WINAPI ThreadProc(LPVOID lpParameter);
-
> Причем тут "этого же потока" :shock:
Я не совсем правильно выразил мысль. Имелся в виду вообще "метод". Передавать в synchronize метод объекта, отличного от того, в котором поток был создан, я не пробовал, поэтому ничего не могу утверждать о корректности такой конструкции.
> а что в кол можно переопределять паток ?
TThread из KOL.pas - это обычный объект. Что Вам мешает унаследовать от него потомка?
> и зачем если он хавает метод формы ?
"Метод формы" он не хавает
> и зачем метод когда в API просто DWORD WINAPI ThreadProc(LPVOID > lpParameter);
ThreadProc - это основная функция потока, указатель на которую передается в CreateThread. Она и не должна быть методом. Из нее в последствии (как правило) вызывается Thread.Execute, из которого Вы можете вызвать Synchonize.
-
> и зачем если он хавает метод формы ?
затем, что при этом (при synchronize) гарантировано отсутствие конфликтов этого вашего "метода формы" с другими событиями интерфейса.
Грубо говоря, работать с визуальными элементами из другого потока можно ТОЛЬКО через synchronize. А за работу (с контролами созданными в основном потоке) через Execute - надо руки отрывать сразу, не дожидаясь пока все громко крякнет.
> Имелся в виду вообще "метод".
Вопросов больше не имею :))
-
> затем, что при этом (при synchronize) гарантировано отсутствие > конфликтов этого вашего "метода формы" с другими событиями > интерфейса.
я про то и говорю synchronize(form1.draw);
-
> я про то и говорю
Вообще-то, что такое это "то" - непонятно совершенно. Как и непонятно, остались проблемы с пониманием, или нет И к чему тогда относилось "зачем", если "про то и говорилось" И чего вообще было было непонятно с самого начала - тоже не очень понятно стало как-то...
-
Рискну предположить, что программа товарища Robt читает откуда-то какие-то данные в потоке и хочет выводить их на форму в виде графиков, таблиц, etc (например, данные с com-порта).
-
ага спектр (звук), и ком порт на подходе (дист управление)
то есть я понял что передаеца метод чтоб знать кому посылать сендмессажу для синхронизации , но это уже не важно ...
-
Наконец-то разрулил свои внеколовские дела. Завтра буду все читать и готовить обновление.
-
Помогите разобраться чем использование потоков KOL отличается от стандартных дельфовых потоков? это вырезка из help-а unit Unit2;
interface
uses
Classes;
type
TMyThread = class(TThread)
private
protected
procedure Execute; override;
end;
implementation
procedure TMyThread.Execute;
begin
end;
end. не мог бы кто-нибудь привести аналогичный пример для KOL?
-
-
-
Подскажите пажалуйста как создать динамически потоки.
uses Windows, Messages, KOL;
type
TMyThread = object( TThtead ) пробывал так но Delphi говорит (Undeclared identifier: 'TThtead')
-
TThtead?
Вообще, всё написано в книге, в комментариях. Демо есь.
-
-
В KOL всё - динамически. Открывайте unit1_1.inc, и там процедура, в которой написано, как оно делается "статически". Пишите так же по свистку - будет динамически.
-
-
|