Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Komponente erstellen und Ereignis eine Methode zuweisen


Stevie - Do 11.09.03 11:28
Titel: Komponente erstellen und Ereignis eine Methode zuweisen
Hi,

ich versuche verzweifelt eine Komponente abzuleiten und einem bereits vorhandenen Ereignis eine Methode zuzuweisen, die standardmäßig ausgeführt wird. Wie mache ich das?


maximus - Do 11.09.03 16:10

hi,

wenn du eine compo ableitest, dann würde ich kein event zuweisen, da es ja vom 'user' wieder überschrieben werden kann. SOndern du 'overridest' eine der vielen virtuellen methoden:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
TBla = class(TWinControl)
...
public
  paint; override;
...
end;

...
procedure TBla.paint;
begin
  inherited paint;
  // hier was zeichnen...was du willst -> und schon wird deine compo anders aussehen
end;


verstehst du?


Stevie - Fr 12.09.03 08:37

Den wahren Sachverhalt jetzt hier zu erläutern, würde zu weit führen (Indy-Komponenten) Aber nehmen wir an, ich möchte ein neuen Button erstellen, der beim Draufklicken immer irgendwas macht, muss ich dann nicht dem OnClick-Ereignis eine Routine irgendwas zuweisen???


Tino - Fr 12.09.03 09:41

Hallo,

es gibt zu fast jedem Event eine entsprechende Procedure die nur das Event aufruft. Beim OnClick-Event wäre das die Click Procedure. Diese Proceduren sind in der Protected Sektion als Virtual definiert. Das heißt du kannst diese Proceduren überschreiben um z. B. in abgeleiteten Komponeten auf das Click reagieren. Vergiss nicht das Inherited aufzurüfen damit das vom User definierte OnClick-Event auch aufgerufen wird.

Gruß
Tino