Вот посидел покумекал чо то набросал через потоки
- Код: Выделить всё
unit Timers;
interface
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes,SysUtils;
Type
Tmy_timer = class(TThread)
private
Interval:integer;
my_Execute:Pointer;
protected
procedure Execute; override;
public
Constructor Create(const Interval_millsecond: Integer; const Execute_procedure: Pointer;CreateSuspended : boolean);
end;
implementation
constructor Tmy_timer.Create(const Interval_millsecond: Integer; const Execute_procedure: Pointer;CreateSuspended : boolean);
begin
FreeOnTerminate := True;
Interval:=Interval_millsecond;
my_Execute:=Execute_procedure;
inherited Create(CreateSuspended);
end;
procedure Tmy_timer.Execute;
var
newStatus : string;
begin
while (not Terminated) do
begin
sleep(Interval);
try
Synchronize(my_Execute);
finally
end;
end;
end;
end.
Теперь стоит в том как вызвать передаваему в парамтерах процедуру.
Synchronize(my_Execute); выдает разнообразые ошибки.
сам метод Execute потока еще не дописан, временно поставлено sleep(Interval); Дальнейшая реализация планируется через GetTickCount