Delphi-PRAXiS
Seite 2 von 2     12   

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/)
-   -   TTabcontrol - OnExit funktioniert nicht wie erwartet (https://www.delphipraxis.net/190715-ttabcontrol-onexit-funktioniert-nicht-wie-erwartet.html)

idefix2 30. Okt 2016 19:44

AW: TTabcontrol - OnExit funktioniert nicht wie erwartet
 
Liste der Anhänge anzeigen (Anzahl: 1)
irgendwie macht mich das wahnsinnig. Jetzt wollte ich ein TMainMenuItem von TMenuItem ableiten, in dem ich OnClick überschreibe, um an der Stelle halbwegs zentral meine Sheets zu sichern, wenn ein Punkt des hauptmenüs aufgerufen wird.
Bloss, es kommt die Fehlermeldung "Methode OnClick nicht in Basiskasse gefunden."
Aber die Basisklasse HAT ein OnClick-Ereignis. Was mache ich da falsch?

nahpets 30. Okt 2016 20:05

AW: TTabcontrol - OnExit funktioniert nicht wie erwartet
 
Schau doch mal in den Quellen von Delphi nach (sofern Du sie bei Deiner Delphiversion dabei hast) wie dort bei TMenuItem OnClick definiert ist.

Bei Delphi 7 sieht das so aus:
Delphi-Quellcode:
property OnClick: TNotifyEvent read FOnClick write FOnClick stored IsOnClickStored;

idefix2 30. Okt 2016 21:00

AW: TTabcontrol - OnExit funktioniert nicht wie erwartet
 
Bei der Starter-Edition ist kein Quellcode dabei. Aber mir ist schon klar geworden, was da falsch ist.

Ich habe geglaubt, die interne Methode, die die Onclick-Routine aufruft, heißt Onclick. Die heisst aber offenbar anders, d.h. ich kann nicht Onclick überschreiben, sondern ich muß den Konstruktor von TMenuItem überschreiben und dort die Property Onclick setzen.

pffff...

Oder ich lass es bleiben und setze die Property direkt im OI. Ist halt ein Problem, wenn irgendwann das Menü erweitert wird, das ist etwas, worauf dann mit fast 100%iger Sicherheit vergessen werden wird. Aber wenn jemand statt meines TMainMenuItem ein normales TMenuItem ins Menü hängt, hilft ohnehin auch nichts.

himitsu 30. Okt 2016 22:32

AW: TTabcontrol - OnExit funktioniert nicht wie erwartet
 
Oft heißen die Caller der Events DO

OnClick -> DoClick (siehe TButton)
Aber bei TMenuItem gibt es keinen expliziten Caller für dieses Event.

Allerdings gibt es hier eine passende Methode, für diese Funktion, die man auch per Code aufrufen kann, um die Funktion von MenuItems/Buttons auszulösen.
Delphi-Quellcode:
procedure Click; override;

idefix2 31. Okt 2016 23:52

AW: TTabcontrol - OnExit funktioniert nicht wie erwartet
 
Danke. Sobald ich etwas Zeit habe, probiere ich das aus. Auf die Schnelle habe ich jetzt schon bei den betroffenen Menüeinträgen über den OI das Onclick gesetzt. Aber ein override der internen Click-verarbeitung in einer abgeleiteten Klasse würde mir irgendwie besser gefallen.

Ghostwalker 1. Nov 2016 14:53

AW: TTabcontrol - OnExit funktioniert nicht wie erwartet
 
hmmmm....ich würde eher eine TAction/TCustomAction verwenden und die Actions entsprechend auf die Menüs, Speedbuttons usw. verteilen :)

Hat den Vorteil, das das auslösende Control egal ist (ob das nu ein Menüpunkt oder ein Speedbutton oder
ein xyz-control).


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:02 Uhr.
Seite 2 von 2     12   

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