![]() |
Event im Objektinspektor von Elternklasse?
Hallo Leute,
Habe eine Klasse vom Typ TForm abgeleitet, die mir u.a. auch eine Clickroutine zur Verfügung stellt. Wenn ich nun ein Objekt davon ableite und ein Button darauf ziehe, so möchte ich im Objektinspektor beim OnClick die Möglichkeit haben, die Routine des Eltern-Objekts auszuwählen. Geht das irgendwie???:?: Also als Beispiel: Das ElternFenster hat wie gesagt eine Methode für OnClick und alle Buttons, die ich auf mein KindFenster ziehe, sollen diese Klickmethode benutzen, auswählbar im Objektinspektor. Meine bisherige Lösung: Ich erzeuge eine neue Methode im KindFenster, die dann die Elternmethode aufruft. Finde ich aber unelegant. :roll: Hat jemand eine bessere Idee? Vielen Dank schon mal im Voraus, DaWalt |
AW: Event im Objektinspektor von Elternklasse?
Zeig mal die Deklaration für so ein Click-Event aus der Elternklasse
ME müssten die mit angeboten werden (wenn die richtig deklariert sind ;) ) |
AW: Event im Objektinspektor von Elternklasse?
Elternteil:
Code:
KindTeil:
type
TExtFoeteForm = class(TForm) Timer1: TTimer; SB_Handbedienung: TSpeedButton; BB_Close: TBitBtn; procedure Timer1Timer(Sender: TObject); dynamic; procedure FormShow(Sender: TObject); dynamic; procedure FormHide(Sender: TObject); procedure BB_CloseClick(Sender: TObject); procedure AusgangsClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } published end; var ExtFoeteForm: TExtFoeteForm; implementation {$R *.DFM} ... procedure TExtFoeteForm.AusgangsClick(Sender: TObject); begin with Sender as TButton do begin ...; end; end;
Code:
Und wahrscheinlich liegt genau beim "richtig deklariert" der Hase im Pfeffer. Hab den Eintrag im Elternteil von auch schon im Public- und im Published-Teil gehabt, hat aber nix geändert.
type
TKindForm = class(TExtFoeteForm) ... allerlei Objekte, u.a. Buttons, die AusgangsClick benutzen sollen |
AW: Event im Objektinspektor von Elternklasse?
|
AW: Event im Objektinspektor von Elternklasse?
Also ohne Package und Komponente und registrieren usw geht´s nicht?
|
AW: Event im Objektinspektor von Elternklasse?
Ich kann Dein Problem bei mir nicht nachvollziehen, ie sieht Dein DFM aus
inherited KindForm: TExtFoeteForm oder object KindForm: TExtFoeteForm |
AW: Event im Objektinspektor von Elternklasse?
Ich fürchte, ohne registrieren wird im OI nichts zu sehen sein.
Ist mir zumindest nicht gelungen |
AW: Event im Objektinspektor von Elternklasse?
@ idefix2: Schade eigentlich, jedenfalls vielen Dank!
@ Bummi: Verstehe Deine Frage auch nicht. ;-) Ich erzeuge ein neues Form und ändere den Klassentyp von "TForm" auf "TExtFoeteForm". Dann ziehe ich einen Button auf das Fenster und wähle im Objektinspektor bei OnClick eine Methode aus, bzw. würde gerne auswählen, nämlich die in der Elternklasse angelegte "AusgangsKlick". Diese erscheint aber nicht. So wie Idefix2 schrieb, werde ich die Fensterklasse "TExtFoeteForm" wohl erst irgendwie registrieren und/oder zur Komponente umbauen müssen. Wäre sonst wohl zu schön und zu einfach gewesen. |
AW: Event im Objektinspektor von Elternklasse?
Geh auf Dein Formular schalte auf Ansicht als Text
und ändere okject KindForm: TExtFoeteForm in inherited KindForm: TExtFoeteForm oder nimm einen Texteditor und öffne dort Dein DFM |
AW: Event im Objektinspektor von Elternklasse?
Also meiner Erfahrung nach sollte man Formulare nicht ableiten und neue Properties einführen.
Denn dazu muss man die Formularklasse in einem Designtime-Package registieren. Wer schon mal versucht hat ein grosses Projekt auf einen frisch eingerichteten Delphi zu kompilieren, der weiss dass er dazu Stunden oder auch Tage benötigt, bis man die ganzen Komponenten installiert hat. Bei echten Komponenten überwiegt der Vorteil des komponentenbasierten Programmierens den Aufwand der Installation. Abgeleitete Formulare sind aber den Aufwand nicht wert. Komponenten sind wie Legobausteine; man kann sie überall einsetzen. Abgeleitete Formulare sind dagegen spezialisierte Klassen und daher nicht universell verwendbar. Es gibt genügend Möglichkeiten und Techniken (z.B. Factory-Klassen) um abgeleitete Formulare zu vermeiden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 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