Обнаружил у себя огромный провал знаний :-/
Среда программирования MSEide.
Суть проблемы: в отдельный юнит выделен набор функций и процедур - своеобразное ядро программы - которые вызываются в основной программе по клику на кнопки. НУЖНО в этот юнит вписать таймер, который будет стартовать в процедуре pk_init. Задача таймера проста - считать время от начала выполнения процедуры pk_init и записывать значение в переменную pk_time. Время нужно считать именно в юните, основная программа может только запросить сколько времени прошло, тут без вариантов.
основная программа:
- Код: Выделить всё
uses
..., pkernel;
procedure tmainfo.on_start_click(const sender: TObject);
begin
pk_init;
end;
procedure tmainfo.on_get_time_click(const sender: TObject);
begin
tlabel1.caption := inttostr(pk_time);
end;
Юнит:
- Код: Выделить всё
unit pkernel;
{$ifdef FPC}{$mode objfpc}{$h+}{$endif}
interface
uses msestrings, classes, sysutils, msetimer;
var
pk_time : integer;
procedure on_timer(const sender : TObject); // провал в знаниях здесь, как правильно прописать?
procedure pk_init;
procedure pk_close;
implementation
var
ttimer1 : ttimer;
procedure on_timer(const sender : TObject);
begin
inc(pk_time);
end;
procedure pk_init;
begin
ttimer1 := ttimer.create(nil);
ttimer.ontimer := @on_timer;
pk_time := 0;
ttimer1.enabled := true;
end;
procedure pk_close;
begin
ttimer1.free;
end;
end.
Собственно провал в знаниях в том, как правильно прописать процедуру on_timer?