
29.11.2007, 10:41
|
|
Познающий
Регистрация: 27.03.2007
Сообщений: 95
Провел на форуме: 244822
Репутация:
37
|
|
Сообщение от cyber$nake
возникла такая проблема:
пишу например:
Код:
program MyApp;
{$APPTYPE CONSOLE}
uses
ExtCtrls;
var
Timer: TTimer;
procedure MyAppOnTimer(Sender: TObject);
begin
{}
end;
begin
Timer := TTimer.Create(nil);
Timer.OnTimer := MyAppOnTimer; //вот здесь ошибка.
end;
При компиляции выдает ошибку -
"Incompatible types: 'method pointer and regular procedure'"
Как сделать правильно?
получилось вот таким способом, но проц сильно грузит:
Код:
type
....
TMyTimer = class(TObject)
timTimer: TTimer;
booTrigger: boolean;
procedure timTimerTimer(Sender: TObject);
end;
....
procedure TMyTimer.timTimerTimer(Sender: TObject);
begin
booTrigger := true;
...
end;
procedure TimerExample;
var
timDemo: TMyTimer;
begin
with timDemo do
begin
timDemo := TMyTimer.Create;
timTimer := TTimer.Create(nil);
booTrigger := false;
timTimer.Interval:=30000;
timTimer.Enabled:=true;
timTimer.OnTimer := timDemo.timTimerTimer;
repeat
Application.ProcessMessages;
until booTrigger;
Free;
end;
end;
может ктонить предложит по проще и с меньшей нагрузкой на проц?
|
|
|