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 Vererbung mit TWebModule (https://www.delphipraxis.net/209819-vererbung-mit-twebmodule.html)

TheSledgeHammer 26. Jan 2022 15:19

Vererbung mit TWebModule
 
Hallo liebes Forum,

ich habe ein Problem mit der Vererbung von TWebModule-Klassen. Mein Setting ist eigentlich recht simpel: ich habe eine Basisklasse, die direkt von TWebModule erbt, und ich habe (derzeit) zwei Kinder-Klassen, die von meiner Basisklasse erben. Soweit, so gut.

Jetzt möchte ich aber auch den Designer nutzen, damit ich Actions einbauen kann, womit ich ja de facto die Endpunkte meines Webmoduls erzeuge. Für die Basisklasse funktioniert das auch ohne Probleme. Hier kann ich zwischen Code und "GUI" hin und her springen und die GUI wird auch als TWebModule erkannt. Wenn ich das jetzt bei meinen Kinderklassen versuche, hagelt es erstmal Hinweise, dass bspw. die property "Actions" nicht existiert und wenn ich das ignoriere, geht eine GUI auf, die sehr wie eine Form ausschaut. In der DFM-Datei werden dann auch allerhand Properties reingeschrieben, die wiederum sehr nach TForm-Properties ausschauen.

Ich könnte - wenn Bedarf besteht - gern ein Minimalbeispiel posten, aber wie gesagt, an dem Setting ist nix weiter Komplexes dran. Wenn es da einen Workaround gibt, nehm ich den auch gerne. Aber so wie ich das sehe, kann ich diese Actions so nicht definieren und entsprechend dann auch meine Endpunkte nicht erzeugen, sehe ich das richtig?

peterbelow 26. Jan 2022 15:36

AW: Vererbung mit TWebModule
 
Zitat:

Zitat von TheSledgeHammer (Beitrag 1501223)
Hallo liebes Forum,

ich habe ein Problem mit der Vererbung von TWebModule-Klassen. Mein Setting ist eigentlich recht simpel: ich habe eine Basisklasse, die direkt von TWebModule erbt, und ich habe (derzeit) zwei Kinder-Klassen, die von meiner Basisklasse erben. Soweit, so gut.

Wie hast Du die abgeleiteten Klassen erzeugt? Designer-Klassen bestehen nicht nur aus einer Kode-Unit sondern auch aus einem DFM-File. Um beides korrekt zu erzeugen muss man "visual form inheritance" verwenden.

File -> New -> Others um den Repository-Dialog zu öffnen, dort links "inheritable items" anklicken, dann rechts die gewünschte Basisklasse und dann OK.

Wenn man den Vorfahr einer existierenden Designerklasse ändern will kann man das im Kode machen, muss danach aber sofort in den Designer wechseln, dort "view as text" im Kontextmenu wählen und im dann angezeigten DFM-File das erste "object" in "inherited" ändern.

TheSledgeHammer 27. Jan 2022 06:31

AW: Vererbung mit TWebModule
 
Hallo peterbelow,

also das mit dem "in inherited ändern" ist mir total neu! Hab ich in 7 Jahren Delphi noch kein einziges Mal gelesen, gehört, geschweigedenn verwendet. Ich hab das jetzt genau so gemacht: den Identifier "object" geändert zu "inherited". Und jetzt kann ich offenbar alles wieder so machen, wie ich mir das gedacht hatte. Besten Dank für die schnelle Hilfe!

Das mit dem Wizard - also Datei/Neu/Weitere usw. - hab ich auch noch nicht gekannt, aber das ist ja an sich nicht unbedingt notwendig, das geht ja auch "zu Fuß"; man muss halt den Trick mit dem "inherited" kennen :)

Case closed, vielen Dank nochmal.

BerndS 27. Jan 2022 07:37

AW: Vererbung mit TWebModule
 
Das ist jetzt nicht böse gemeint aber warum einfach (IDE), wenn es auch umständlich geht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz