![]() |
EResNotFound bei dynamischem Form
In meinem Projekt erstelle ich bis jetzt 3 Forms dynamisch:
Delphi-Quellcode:
Ich erstelle sie mit Application.CreateForm() bzw. dem Konstruktor Create().
type TAScreen = class(TForm)
protected procedure SelfCreate(Sender:TObject); end; type TBScreen = class(TForm) end; type TWdWindow = class(TForm) // Nur Basisklasse für TWdWinBlueWay private FWWID: Word; protected function WWIDCreate:Word;virtual; procedure WWIDFree;virtual; public property WWID:Word read FWWID; constructor Create(AOwner: TComponent);override; destructor Destroy;override; end; type TWdWinBlueWay = class(TWdWindow) protected FTitlebarHeight: Word; procedure Paint;override; published constructor Create(AOwner: TComponent);override; end; Nun das Problem: Wenn ich das Programm starte, erscheint für jedes der Forms eine Fehlermeldung EResNotFound. Den meisten ist wahrscheinlich schon beim Durchlesen des obrigen Quellcodes die Methode TAScreen.SelfCreate() aufgefallen. Es sei gleich gesagt: Sie ist nur dazu da, mit TAScreen.OnCreate() verbunden zu werden. [EDIT/] Ich habe ![]() Aber das hat mein Problem auch nicht gelöst. |
Re: EResNotFound bei dynamischem Form
Wenn du den Konstruktor Create aufrufst, muss eine zum Formular passende dfm-Datei als Ressource eingebunden sein. Falls das nicht der Fall ist, musst du CreateNew verwenden.
|
Re: EResNotFound bei dynamischem Form
Funktioniert Application.CreateForm()?
|
Re: EResNotFound bei dynamischem Form
Nein, da dort Create verwendet wird. Das ist allerdings auch kein Beinbruch. CreateFrom erzeugt das Formular, prüft ob es bereits ein Hauptformular gibt und setzt das neue Formular ggf. als Hauptformular.
|
Re: EResNotFound bei dynamischem Form
Und wie setze ich das Hauptform selbst?
|
Re: EResNotFound bei dynamischem Form
Soll also eines von den dynamischen Formularen dein Hauptformular sein? Dann musst du in dem Formular Create überschreiben und dort nicht inherited Create sondern CreateNew aufrufen.
|
Re: EResNotFound bei dynamischem Form
thx, auf die Idee bin ich nicht gekommen.
Jetzt funzt es. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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