![]() |
Komponentenableitung mit message in Implementation
In der Basiskomponente habe ich z.B:
procedure CMEnter (var Message: TCEMEnter); message CM_Enter; In der davon abgeleiteten Komponente soll eine Routine mit dem gleichen Namen liegen die dort ausgeführt wird. Die Routine der Basisklasse soll dabei nicht aufgerufen werden. Jetzt kann ich aber nicht einfach 'ovverride' hinter die 'message' schreiben, dann beschwert sich der Compiler. Grüße // Martin |
Re: Komponentenableitung mit message in Implementation
Schlüsselwort 'override' ist hier nicht notwendig, weil die Botschaft zuerst an deine Klasse geht.
Wird die Botschaft nicht behandelt, wird die Klassenhierarchie aufgestiegen bis zum obersten TObject (dort passiert dann gar nichts mit der Botschaft) Du kannst selbst steuern, ob die Botschaft zu deiner Basisklasse weitergeleitet werden soll oder nicht:
Delphi-Quellcode:
procedure TDeinControl.CMEnter (var Message: TCEMEnter); message CM_Enter;
begin // zuerst selbst behandeln Color := clRed; if Sonnescheint and RegenbogenIsVisible then inherited; end; |
Re: Komponentenableitung mit message in Implementation
Hab banal das Problem, dass mir eine Unterklasse die Events behandelt, die eine darüberliegene etwas anders abarbeiten soll. Wenn die von unten nach oben wandern entspricht das Deiner Beschreibung. Was mach ich denn nun, wenn die Unterklasse ruhig gestellt werden soll. Oder stehe ich im Moment auf dem Schlauch??
Grüße // Martin |
Re: Komponentenableitung mit message in Implementation
TObject ist oben - ok - Zeit fürn Tee
Ja hatte beim Suchen und Ersetzen einen Buchstaben im Procedurnamen der Nachfolgeklasse und schon schlug die Message mehrfach zu. Zeit fürs Wochenende. Naja sobald das Gewitter da draussen weg ist. Grüße // Martin |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 Uhr. |
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-2025 by Thomas Breitkreuz