![]() |
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: |
Re: Eigene Komponente - Standard-Event
Liegt an der Reihenfolge der Eigenschaften.
|
Re: Eigene Komponente - Standard-Event
@Sprint: Bist du dir da ganz sicher? bei manchen Komponenten ist das Standardevent auch das zweite etc.
|
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; |
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