![]() |
Eigenes OnClick-Event
Hi,
bin gerade dabei ein OnClick-Event meiner Komponente zu implementieren. Dummerweise weiß ich nicht, welche Message ich brauche. Hab CM_CLICK probiert, die gibts aber anscheinend nicht. Auch nach einer halben Stunde suchen in Coontrols.pas weiß ich nicht weiter. Hier mal ein paar Zeilen Code:
Delphi-Quellcode:
Welche Message brauch ich?
...
private fOnClick: TNotifyEvent; procedure CMClick(var Message: TMessage); message CM_CLICK; //CM_CLICK gibts net ... ... published property OnClick: TNotifyEvent read fOnClick write fOnClick; ... ... procedure TCubeNavigationButton.CMClick(var Message: TMessage); begin if not Active then begin fActive := True; Color := fActiveBarColor; fButtonShape.Pen.Color := fActiveBorderColor; fButtonShape.Brush.Color := fActiveButtonColor; fCaptionLabel.Font.Assign(fActiveButtonFont); fGlyphImage.Picture.Assign(fGlyphActive); end; if assigned(fOnClick) then begin fOnClick(Self); end; end; EDIT: Wenn ich BN_CLICKED verwende, meldet der Compiler: "[Pascal Fehler] CubeNavigationButton.pas(55): E2139 Ungültiger Botschaftsmethoden-Index" |
Re: Eigenes OnClick-Event
Hi,
Wovon hast du es denn abgeleitet? Bestimmt reicht es, im published-Abschnitt
Delphi-Quellcode:
einzufügen (eigentlich schon bei beliebigen TControl-Nachfahren). Und das wären alle visuellen Komponenten. Es ist eben nur protected und muss erst noch published - veröffentlicht - werden.
property OnClick;
Mfg FAlter |
Re: Eigenes OnClick-Event
Zitat:
|
Re: Eigenes OnClick-Event
Hi,
dann mach es so:
Delphi-Quellcode:
Mfg
...
protected procedure Click; override; //ist als dynamic gekennzeichnet ... procedure TMyComponent.Click; begin //Hier dein Code - vorher inherited; //Hier dein Code - nachher end; FAlter [edit]Genau diese Empfehlung gibt es in der OH: ![]() |
Re: Eigenes OnClick-Event
Wenn ich es so mache wird bei einem Klick mein Code nicht ausgeführt und der User hat außerdem im OI kein OnClick-Eregnis...
|
Re: Eigenes OnClick-Event
1. hast du denn nun im published Abschnitt
Delphi-Quellcode:
hinzugefügt?
property OnClick;
2. Wo steht denn nun dein Code (der nun nicht mehr ausgeführt wird)? vor dem Inherited in der oben genannten Click Methode? |
Re: Eigenes OnClick-Event
Zitat:
2. Vor dem inherited |
Re: Eigenes OnClick-Event
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
1. es heißt nicht property Click sondern property OnClick, aber procedure Click [edit] und override nicht vergessen [/edit] 2. Das funktioniert (siehe Anhang), getestet mit D7Pers, also hast du meine Anweisungen nicht richtig gelesen. Mfg FAlter |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 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