Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zur Laufzeit erstellter Timer (https://www.delphipraxis.net/13024-zur-laufzeit-erstellter-timer.html)

bender 9. Dez 2003 17:14


Zur Laufzeit erstellter Timer
 
Hi

wie kann ich einem zur Laufzeit erstellten Timer ein onTimer Ereignis zuweisen?
das Problem hierbei ist nicht der Aufruf (den weiss ich mittlerweile), sondern, dass ich das OnTimer Ereignis aus einer Prozedur zuweisen will...
Delphi-Quellcode:
unit Unit2;

interface

uses  Forms, ExtCtrls,Unit1;

procedure moin();
procedure MyTimerEvent(Sender: TObject);

implementation

procedure moin();
var
  MyTimer: TTimer;
begin
  MyTimer := TTimer.Create(application);
  MyTimer.Enabled := True;
  MyTimer.Interval := 1000;
  MyTimer.OnTimer := MyTimerEvent;

end;
procedure MyTimerEvent(Sender: TObject);
begin
  form1.Caption := TimeToStr(Time);
end;
end.

PeterRettig 9. Dez 2003 17:43

Re: Zur Laufzeit erstellter Timer
 
Was meinst du mit "das OnTimer Ereignis aus einer Prozedur zuweisen " ??

himitsu 9. Dez 2003 17:57

Re: Zur Laufzeit erstellter Timer
 
Schau mal da nach:
prozedur aufruf und sender

oder du schachtelst deine Prozedur in eine Klasse, dazu gab es auch vor kurzen einen Beitrag, hab aber keine Ahnung wo.

http://www.delphipraxis.net/images/common/divider.jpg
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif

bender 9. Dez 2003 18:03

Re: Zur Laufzeit erstellter Timer
 
wenn ich den aufruf aus einer Tobject procedur mache, dann funktioniert das ganze...
das heisst mit einem Button geht es

Sanchez 9. Dez 2003 18:12

Re: Zur Laufzeit erstellter Timer
 
hi,

So läufts bei mir:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    timer : TTimer;
  public
    procedure MyTimerEvent(Sender: TObject);
  end;


var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  timer := TTimer.Create(Self);
  timer.OnTimer := MyTimerEvent;
  timer.Interval := 1000;
  timer.Enabled := true;
end;

procedure TForm1.MyTimerEvent(Sender: TObject);
begin
  Form1.Label1.Caption := TimeToStr(Now);
end;
Der Unterschied zu deinem ist, dass die Procedure MyTimerEvent zu TForm1 gehört.

bender 9. Dez 2003 18:20

Re: Zur Laufzeit erstellter Timer
 
Und genau dort liegt ja mein Problem, ich habe den code in einer Unit ohne form...Und ich schnall einfach nicht was ich machen muss, damit das ganze trotzdem geht

Sanchez 9. Dez 2003 18:26

Re: Zur Laufzeit erstellter Timer
 
Ich halte es mal für möglich, dass es ein Fenster geben muss, damit die Timer-Messages ankommen können. Du kannst ja nen Timer auf das Hauptform setzen (wenns eins gibt) und dort eine Prozedur deiner Klasse aufrufen.

Luckie 9. Dez 2003 18:35

Re: Zur Laufzeit erstellter Timer
 
Kuck mal hier: http://www.delphi-forum.de/viewtopic...=114285#114285

bender 9. Dez 2003 18:36

Re: Zur Laufzeit erstellter Timer
 
Ach egal, ich lös das Problem irgendwie anders

danke dir trotzdem

himitsu 9. Dez 2003 18:37

Re: Zur Laufzeit erstellter Timer
 
Ein Hallöle von http://www.FrankNStein.de/Smiley-Wolke2.gif,

Delphi-Quellcode:
Unit Unit2;

Interface
  Uses Forms, ExtCtrls, Unit1;

  Procedure moin();

Implementation
  Type TTimerClass = Class
    MyTimer: TTimer;
    Procedure MyTimerEvent(Sender: TObject);
  End;

  Var TimerClass: TTimerClass;

  Procedure moin();
    Var MyTimer: TTimer;

    Begin
      TimerClass.MyTimer := TTimer.Create(application);
      TimerClass.MyTimer.Interval := 1000;
      TimerClass.MyTimer.OnTimer := TimerClass.MyTimerEvent;
      TimerClass.MyTimer.Enabled := True;
    End;

  Procedure TTimerClass.MyTimerEvent(Sender: TObject);
    Begin
      Form1.Caption := TimeToStr(Time);
    End;

End.
(nicht getestte, aber so in etwa)

[add]
http://www.FrankNStein.de/Smiley-Trauer.gif du bist gemein, hättest du das nicht früher sagen können.

http://www.delphipraxis.net/images/common/divider.jpg
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz