Hallo Leute,
ich hoffe ihr könnt mir helfen. Erstmal zu dem was ich machen will:
Ich entwickle zur Zeit eine neue Komponente, abgeleitet von TPanel. Auf dem Panel befinden sich weitere Komponenten, wie bspw. Labels, Edits, ... Beim Click auf das Panel wird eine bestimmt Aktion ausgeführt (bspw. Farbe soll sich ändern). Meine neue Komponente soll sich grundsätzlich ansonsten wie ein normales Panel verhalten können. Bspw. soll der Nutzer auch das OnClick-Event selber setzen können. Also habe ich die Prozedur Click überschrieben (und nicht einfach OnClick einen festen Ereignis-Handler zugewiesen). Das funktioniert auch soweit.
Jetzt soll das gleiche auch passieren (also das Panel bspw. farbig werden), wenn man auf eine der untergeordneten Komponenten klickt. Dazu könnte ich natürlich deren OnClick-Ereignisse verwenden. Die sollen aber jeweils außerhalb der Komponente (weiterhin) verwendet werden können. Wenn ich bspw. UntergeordnetesLabel.Click innnerhalb der Komponente verwende und dann dabei das Click vom Panel aufrufe, funktioniert das doch nur, solange niemand von außen das OnClick des Labels neu setzt, oder?.
So jetzt die Fragen:
1. Hat jemand eine elegante Lösung(-sidee) für das Problem?
2. Probiert hatte ich die Verwendung von WM_Command oder CN_Command. Also
Delphi-Quellcode:
protected
procedure WMCommand(var Message: TWMCommand); message WM_COMMAND;
bzw.
Delphi-Quellcode:
protected
procedure CNCommand(var Message: TWMCommand); message CN_COMMAND;
Irgendwie wird das Ereignis aber nie getriggert, weder beim Click auf das Panel noch auf eine der untergeordneten Komponenten. Was mache ich da falsch?
Vielen Dank!