Einzelnen Beitrag anzeigen

TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Timer nur in einer Unit zur Laufzeit erzeugen ??

  Alt 20. Feb 2004, 22:29
Hi,

also wenn ich das richtig verstanden hatte, dann hat diese Hilfsklasse (ich nenn sie jetzt mal 'TMyTimerHelpClass') doch überhaupt nur die eine Funktion, deinem Timer als anspringbare Routine eine Methode anzubieten. Absolut nichts anderes sollte diese Klasse daher auch beinhalten, als nur eben diese Methode ...in der du dann also auch immer den Code eintragen solltest, den du mittels des Timers intervallmäßig aufgerufen haben möchtest. Der Timer selbst steht dann aber wieder ganz normal außerhalb dieser Klasse.

Ich habe das Ganze also kurz mal in diesem Sinne so umgebaut:

Code:
unit Unit2;

interface

uses ExtCtrls, SysUtils;

type
  TMyTimerHelpClass = class(TObject)
  public
    procedure MyTimerSub(Sender : TObject);
  end;

var
  ATimerSub : TMyTimerHelpClass;
  ATimer : TTimer;

implementation

uses unit1;

procedure TMyTimerHelpClass.MyTimerSub(Sender : TObject);
begin
  form1.Caption := TimeToStr(now);
end;

end.

Sowohl den Timer (ATimer) als auch (erstmal nur) eine Instanz von 'TMyTimerClass' (ATimerSub) kannst du dann einfach im FormCreate-Eventhandler von Form1 erzeugen, etwa so:

Code:
procedure TForm1.FormCreate(Sender: TObject);
begin
  ATimerSub := TMyTimerHelpClass.Create;
  ATimer := TTimer.Create(nil);
  ATimer.Interval := 1000;
  ATimer.Enabled := True;
  ATimer.OnTimer := ATimerSub.MyTimerSub;
end;
Dann müsste es eigentlich funktionieren (bei mir jedenfalls gings).
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat