Как говорится в теме вопроса. У меня есть консольное приложение в Delphi, которое содержит переменную TTimer
. Я хочу назначить обработчик события TTimer.OnTimer
. Я совершенно новичок в Delphi, я использовал C #, и добавление обработчиков событий к событиям совершенно другое. Я обнаружил, что нельзя просто назначить процедуру событию в качестве обработчика, вам нужно создать фиктивный класс с методом, который будет обработчиком, а затем назначить этот метод событию. Вот код, который у меня сейчас есть:
program TimerTest;
{$APPTYPE CONSOLE}
uses
SysUtils,
extctrls;
type
TEventHandlers = class
procedure OnTimerTick(Sender : TObject);
end;
var
Timer : TTimer;
EventHandlers : TEventHandlers;
procedure TEventHandlers.OnTimerTick(Sender : TObject);
begin
writeln('Hello from TimerTick event');
end;
var
dummy:string;
begin
EventHandlers := TEventHandlers.Create();
Timer := TTimer.Create(nil);
Timer.Enabled := false;
Timer.Interval := 1000;
Timer.OnTimer := EventHandlers.OnTimerTick;
Timer.Enabled := true;
readln(dummy);
end.
Мне кажется правильно, но почему-то не работает.
РЕДАКТИРОВАТЬ
Похоже, что компонент TTimer
не будет работать, потому что консольные приложения не имеют цикла обработки сообщений. Есть ли способ создать таймер в моем приложении?