Einzelnen Beitrag anzeigen

silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#4

AW: TForm ableiten -> EResNotFound Exception

  Alt 22. Apr 2012, 13:03
Hast Du denn auch eine *.dfm zu Deinem Formular? Ansonsten könntest Du auch mit der Objektablage versuchen.
Ab der Klasse TComponent gibt es einen virtuellen Konstruktor.
Wenn man möchte, dass die VCL in Bezug auf Persistenz (als Laden von DFM Resourcen) richtig funktioniert muss man sich an das halten, was die VCL vorgibt.
[...]
Alle Klassen, die von TComponent abgeleitet sind haben sozusagen die Freiheit aufgegeben, eigene Konstruktoren zu deklarieren zu dürfen.
[...]
Im Gegenzug werden alle published Properties auf den DFM-Resourcen gelesen.
Nein, eine *.dfm habe ich natürlich nicht. Die wird ja nicht erstellt, wenn ich eine Form nur per Code erstelle/ableite.
Wie konnte ich denn ahnen, dass TForm hier einen "Sonderweg" geht

Aber dank Euch habe ich jetzt meinen Gedankenknoten durchbrechen können:
Die TBaseForm wird nun einfach einmalig visuell, d.h. in der IDE (über File->New->Form) erzeugt (dabei also wird auch die DFM erstellt) und gespeichert. Und diese Form kann dann ja problemlos abgeleitet und erweitert werden, auch ohne Objektablage -> Problem gelöst

Die Objektablage wollte ich eigentlich nicht verwenden, da ich das Formular nur für dieses eine Projekt brauche und ich eigentlich keine Lust habe, dass diese Form dann auf alle Ewigkeit ungenutzt in der Ablage herumgammelt.

Hätte mich ungefähr 10 Sekunden gekostet, mal zu googeln, aber daran habe ich natürlich nicht gedacht
Ach was, ein Blick in die Hilfe hätte ausgereicht, dass es so nicht geht, wie ich es mir gedacht hatte.
Zitat von OH: TCustomForm.Create:
For descendants of TCustomForm that are not TForm objects, use CreateNew instead. Calling Create for a TCustomForm descendant that is not a TForm will raise an exception

Hätte mir viel vergebliches Nachdenken und eine dumme (schon vielfach beantwortete) Frage erspart.
Aber nach 3 Litern T400 habe ich nicht mehr so weit gedacht.

So, ich geh' jetzt erst mal schlafen. Danke nochmals.
Tobias
Bitte nicht hauen , ich weiß es nicht besser
  Mit Zitat antworten Zitat