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 EResNotFound bei dynamischem Form (https://www.delphipraxis.net/133103-eresnotfound-bei-dynamischem-form.html)

implementation 25. Apr 2009 17:13


EResNotFound bei dynamischem Form
 
In meinem Projekt erstelle ich bis jetzt 3 Forms dynamisch:
Delphi-Quellcode:
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;
Ich erstelle sie mit Application.CreateForm() bzw. dem Konstruktor Create().

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 dies in der Suche gefunden.
Aber das hat mein Problem auch nicht gelöst.

Apollonius 25. Apr 2009 17:16

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.

implementation 25. Apr 2009 17:40

Re: EResNotFound bei dynamischem Form
 
Funktioniert Application.CreateForm()?

Apollonius 25. Apr 2009 17:46

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.

implementation 26. Apr 2009 14:41

Re: EResNotFound bei dynamischem Form
 
Und wie setze ich das Hauptform selbst?

Apollonius 26. Apr 2009 14:52

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.

implementation 26. Apr 2009 15:27

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