Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Eigene Komponente - Standard-Event (https://www.delphipraxis.net/49615-eigene-komponente-standard-event.html)

Ultimator 13. Jul 2005 20:47


Eigene Komponente - Standard-Event
 
So, ich hab wieder mal eine Frage (nein, ausnahmsweise kein Problem :mrgreen:)

Und zwar hab ich mir ne kleine, spaßige Komponente von TButton abgeleitet, die eine Property Data: string hat.

Die Kompo funktioniert auch soweit, allerdings sind wir es gewohnt, zur Designzeit doppelt auf einen Buton zu klicken und wir landen im Code im OnClick-Event.
Bei meiner Komponente allerdings lande ich da im OnChange-Event.

Aber woran liegt das?
Oder noch wichtiger: wie kann ichs ändern? :)

Ich hoffe, ihr könnt mir helfen :)

//edit So, ich hab mal das Leerzeichen in "Standard Event" in einen Bindestrich konvertiert, alles andere erinnert michso an die Deppenleerzeichen-Seite :mrgreen:

Sprint 14. Jul 2005 07:05

Re: Eigene Komponente - Standard-Event
 
Liegt an der Reihenfolge der Eigenschaften.

SirThornberry 14. Jul 2005 07:21

Re: Eigene Komponente - Standard-Event
 
@Sprint: Bist du dir da ganz sicher? bei manchen Komponenten ist das Standardevent auch das zweite etc.

shmia 14. Jul 2005 10:48

Re: Eigene Komponente - Standard-Event
 
Sprint hat recht. Aber man kann da eingreifen.

Online-Hilfe:
Wenn bei einem Doppelklick auf die Komponente der Quelltext-Editor für eine Ereignisbehandlungsroutine angezeigt werden soll, verwenden Sie als Basisklasse für Ihren Komponenteneditor TDefaultEditor anstelle von TComponentEditor. Überschreiben Sie dann anstelle von Edit die geschützte Methode TDefaultEditor:EditProperty. EditProperty durchsucht alle Ereignisbehandlungsroutinen der Komponente und öffnet die zuerst gefundene. Sie können jedoch auch wie im folgenden Beispiel nach einem bestimmten Ereignis suchen:
Delphi-Quellcode:
procedure TMyEditor.EditProperty(PropertyEditor: TPropertyEditor; Continue, FreeEditor: Boolean)
begin
  if (PropertyEditor.ClassName = 'TMethodProperty') and
    (PropertyEditor.GetName = 'OnSpecialEvent') then
    // DefaultEditor.EditProperty(PropertyEditor, Continue, FreeEditor);
end;

Ultimator 14. Jul 2005 12:50

Re: Eigene Komponente - Standard-Event
 
OK, danke an alle, hat sich erledigt :)

Ich hab einen kleinen Fehler im Quelltext meines Buttons gehabt, und hab ein Event OnChange definiert, das eigentlich OnDataChange heißen sollte :oops:
Nachdem ich das dann richtig umbenannt hab, funktionierts auch mit dem Doppelklicken im Fordesigner :)

Bis zum nächsten Problem, und danke fürs Brett-vom-Kopf-nehmen :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 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 by Thomas Breitkreuz