Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Zugriff auf Ereignisse in vererbter Form (https://www.delphipraxis.net/161600-zugriff-auf-ereignisse-vererbter-form.html)

DeddyH 12. Jul 2011 07:56

AW: Zugriff auf Ereignisse in vererbter Form
 
Sry, den Post hab ich glatt übersehen.

Ralf Kaiser 12. Jul 2011 07:57

AW: Zugriff auf Ereignisse in vererbter Form
 
Zitat:

Zitat von yogie (Beitrag 11112249)
@Ralf : Das Problem ist, daß ich kein OnClick anlegen kann,
weil lich in meiner abgeleiteten Form zur Entwursfzeit den
Button (oder was auch immer) garnicht sehe. Da ist einfach
nur ein leeres Formuar, erst zu Lauzeit wir der Inhalt des
Vorfahr-Formulars angezeigt.

Dann stimmt definitiv mit der abgeleiteten DFM-Datei etwas nicht!

Schau dir mal die Formulardatei als Text an (rechte Maustaste im Forumlardesigner, dann "Als Text anzeigen").

Als erstes Schlüsselwort muss bei einem abgeleiteten Formular dort "inherited" stehen. Wenn dort "object" steht dann kann Delphi nicht "wissen", dass es ein abgeleitetes Formular ist und zeigt ein leeres Fenster an.

Ersetze in dem Fall "object" durch "inherited" und schalte wieder auf die normale Formularansicht und Delphi wird dir den Inhalt des vorfahren anzeigen. Auch mit den Events müsste es dann klappen!

yogie 12. Jul 2011 20:30

AW: Zugriff auf Ereignisse in vererbter Form
 
@ Ralf :
Die Form war zur Entwurfszeit definitiv leer, erst zur Laufzeit
waren die Controls der Vorfahr-Form sichtbar.

Ich bin jetz nicht mehr im Dienst, werde aber morgen dem
Hinweis nochmal nachgehen.

Ich habe jetzt mit einem Frame gearbeitet und es läuft
eigentlcih so wie ich es brauche.

FredlFesl 13. Jul 2011 06:05

AW: Zugriff auf Ereignisse in vererbter Form
 
Du kannst Formulare genauso simpel ableiten wie Frames. Nur 'per Hand', so wie Du es gemacht hast, würde ich es nicht machen.
In der Delphi-IDE gehst Du auf 'Neue Hinzufügen->Weitere' (oder Datei->Neu->Weitere) und dann im Dialog auf 'vererbbare Elemente'. Dann wählst du das Basisformular aus, fertig.

Zur Laufzeit siehst Du dann schon das Basisformular komplett, kannst individuelle Anpassungen vornehmen etc. Das Überschreiben des Events eines im Elternformular eingeführten Controls geht auch intuitiv (wie bereits erwähnt): Beim Klick in den Eventhandler erzeugt Delphi den Event-Stub mit einer Zeile 'Inherited'.

Doch Vorsicht! Wenn du mit den Events der vererbten Controls spielst, passiert es sehr schnell, das Delphi den Eventhandler auf NIL setzt, sodaß später noch nicht einmal der Original-Event aufgerufen wird. Daher mein Tipp: Funktioniert etwas im abgeleiteten Formular nicht mehr, dann schau Dir die DFM an. Dann steht da bestimmt soetwas wie
Code:
object MyInheritedButton
  OnClick = Nil
...
Diese Zeile kannst Du dann einfach Löschen


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:19 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