Показать сообщение отдельно

  #4  
Старый 29.11.2007, 10:41
cyber$nake
Познающий
Регистрация: 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;
может ктонить предложит по проще и с меньшей нагрузкой на проц?
 
Ответить с цитированием