Hallo !
Ich habe ein kleines Problem mit Timern. Ich habe eine
Unit erstellt, die die Klasse "TConroller" beinhaltet. In ihr soll ein Timer gestartet werden, der zuerst 'inTime' Millisekunden wartet und anschließend alle 100 ms eine Variable hochzählt.
Mein Problem ist hierbei allerdings, dass ich beim Aufruf 'timer.OnTimer := startDiff;' eine Fehlermeldung erhalte :
Zitat:
control.pas(30,31) Error: Wrong number of parameters specified for call to "startDiff"
control.pas(18,15) Hint: Found declaration: TController.startDiff(TObject)
control.pas(53) Fatal: There were 1 errors compiling module, stopping
Hier der komplette Quelltext der
Unit :
Delphi-Quellcode:
unit control;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, ExtCtrls;
type
{ TControl }
TController =
class(TObject)
private
timer : TTimer;
diff : integer;
firstEvent : boolean;
procedure startDiff(Sender : TObject);
public
constructor Create(inTime : integer);
procedure stopDiff();
end;
implementation
constructor TController.Create(inTime : integer);
begin
timer := TTimer.Create(
nil);
timer.Interval := inTime;
timer.OnTimer := startDiff;
timer.Enabled := true;
firstEvent := true;
end;
procedure TController.startDiff(Sender : TObject);
begin
if firstEvent
then begin
timer.Enabled := false;
timer.Interval := 100;
timer.Enabled := true;
firstEvent := false;
end else begin
inc(diff);
end;
end;
procedure TController.stopDiff();
begin
timer.Enabled := false;
end;
end.
Ich kann den Timer
nicht per Objekt Inspector einfügen und die Methode so zuweisen, da kein Frame in der
Unit/Klasse exsistiert
Ich wäre über Hilfe sehr dankbar