![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с таймером
Victor_ © (2003-02-01 09:40:00)Здравствуйте все
Есть у меня конструкция вида:
[CODE]
type myThread = class (TThread)
protected
procedure Execute; override;
public
function Calc:Extended;
( str:String)Здравствуйте все
Есть у меня конструкция вида:
[CODE]
type myThread = class (TThread)
protected
procedure Execute; override;
public
function Calc:Extended;
constructor Create(str:String);
end;
constructor myThread.Create(str:string);
begin
SetTimer(Window, 0, 100,@Self.Calc);
inherited Create(false);
end;
[/CODE]
на SetTimer(Window, 0, 100,@Self.Calc); получаю ошибку
как решить проблему?
Предотвращая вопросы что данная конструкция должна делать:
Процедура Calc потока должна вызываться n раз в секунду.
ОЧЕНЬ желательно чтобы это делалось самим потоком
Заранее спасибо
Kladov (2003-02-01 10:59:00) [1]
Не надо наследовать объект от TThread в KOL. Просто создайте эземпляр, и сообщите ему метод, который выполнится в OnExecute. В этом методе в цикле используйте Sleep(1000), чтобы цикл выполнялся раз в секунду. Вообще, лучше делать так:
N := 0;
while not WantStop do
begin
Sleep(100);
Inc( N );
if N mod 10 = 0 then
begin
{ код, который выполняется раз в секунду }
end;
end;
Result := 0;