Online
Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
Delphi 12 Athens
|
AW: Timer in einer Unit
20. Mär 2015, 17:51
Eigentlich würde ich lieber ein OOP-Turorial empfehlen, aber hier mal in Kurz, mit Kommentaren.
Delphi-Quellcode:
type
TMyTimer = class(TTimer)
protected
procedure DoOnTimer; override;
public
constructor Create(Owner: TComponent); override;
//procedure TimerTick(Sender: TObject); // wenn man schon vererbung benutzt, dann doch bitte richtig -> DoOnTimer
end;
var
MyTimer: TMyTimer; // OK, da mach ich noch mit, aber natürlich nur in Implementation deklariert, aber eigentlich als private Class-Var in die Klasse
//a: Integer = 0; // warum ist das global, wo es doch nur im Timer benutzt wird?
//procedure TMyTimer.TimerTick(Sender: TObject);
procedure TMyTimer.DoOnTimer;
begin
Tag := Tag + 1; //Inc(FCount); // privates Feld "FCount: Integer" mit Property oder das Entwicklerproperty "Tag"
inherited;
end;
constructor TMyTimerCreate(Owner: TComponent);
begin
inherited;
Interval := 1000;
end;
//procedure MyTimerCreate;
//begin
// MyTimer := TMyTimer.Create(nil); // alleine in Prozedur, also sinnlos hier
// with MyTimer do
// begin
// Interval := 1000; // nja, 1000 ist zwar auch default, aber wenn es sein muß, dann wenigstens in den Constructor
// Enabled := True; // es ist per Default immer Enabled
// OnTimer := TimerTick; // sinnlos
// end;
//end;
//procedure MyTimerFree;
//begin
// MyTimer.Free;
//end;
initialization
//MyTimerCreate;
MyTimer := TMyTimer.Create(nil);
finalization
MyTimer.Free; //MyTimerFree;
end.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
Geändert von himitsu (20. Mär 2015 um 17:53 Uhr)
|