Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - onTimer von TTimer eine Prozedur zuorden


Ballpower - Do 17.01.08 23:02
Titel: onTimer von TTimer eine Prozedur zuorden
Hallo Freunde,

ich habe recht wenig Ahnung von Delphi und finde nirgendwo Rat, wie ich dem Ereignis onTimer eines Timers meine selbstgeschriebene Prozedur zeichnen zuordnen kann.
Ich habe es bereits so ( Timer.onTimer := zeichnen; ), doch ich bekomme dann folgende Fehlermeldung:
"Inkompatible Typen: Liste der Parameter ist unterschiedlich".
Was muss ich anders machen? Ich benutze Delphi 3.

Danke schonmal :-)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
uses graphics,Classes,extctrls;

type
TUhr = class(TObject)
private
Timer :TTimer;
Container : TCanvas;
X,Y,Radius :smallint;
procedure zeichnen;

public
constructor create(Leinwand:TCanvas;pX,pY,pRadius :smallint);
end;

implementation

constructor TUhr.create(Leinwand:TCanvas;pX,pY,pRadius :smallint);
begin
Container := Leinwand;
X := pX;
Y := pY;
Radius := pRadius;
Timer := TTimer.Create(nil);
Timer.OnTimer := zeichnen;
zeichnen;
end;

procedure TUhr.zeichnen;
begin
end;


end.


Dunkel - Do 17.01.08 23:12
Titel: Re: onTimer von TTimer eine Prozedur zuorden
Hallo!


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
uses graphics,Classes,extctrls;

type
TUhr = class(TObject)
private
  Timer :TTimer;
  Container : TCanvas;
  X,Y,Radius :smallint;
  procedure zeichnen;
  procedure OnTimer(Sender: TObject); 
public
  constructor create(Leinwand:TCanvas;pX,pY,pRadius :smallint);
end;

implementation

constructor TUhr.create(Leinwand:TCanvas;pX,pY,pRadius :smallint);
begin
Container := Leinwand;
X := pX;
Y := pY;
Radius := pRadius;
Timer := TTimer.Create(nil);
Timer.OnTimer := OnTimer;
zeichnen;
end;

procedure TUhr.OnTimer(Sender: TObject);
begin
  zeichnen;
end;

procedure TUhr.zeichnen;
begin
  // hier zeichnen
end;

end.


Die Übergabeparameter der TTimer.OnTimer-Callback-Prozedur müssen halt Sender: TObject sein, ansonsten bekommt man die von Dir genannte Fehlermeldung.


Ballpower - Fr 18.01.08 00:29
Titel: DANKE!
So mache ich's. Ohne die Hilfe hätte ich noch lange suchen können, Danke!!!