Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Form zur Laufzeit erstellen (https://www.delphipraxis.net/37169-form-zur-laufzeit-erstellen.html)

StanY 1. Jan 2005 19:37


Form zur Laufzeit erstellen
 
Ich steh grad ein wenig auf dem Schlauch und finde den Fehler hier nicht:

Delphi-Quellcode:
var
  Form: TForm;
begin
  Form := TForm.Create(nil);
  {...}
  Form.Show;
end;
Das funktioniert wunderbar,..

...während hingegen...
Delphi-Quellcode:
type
  TChatWindow = class(TForm)

  end;

var
  Form: TChatWindow;
begin
  Form := TChatWindow.Create(nil);
  {...}
  Form.Show;
end;
... das nicht funktioniert, sondern eine Exception ausgelöst wird: 'Resource TChatWindow was not found'.

Warum? ôO

Dust Signs 1. Jan 2005 19:41

Re: Form zur Laufzeit erstellen
 
Wenn die Exception vor dem OnShow auftritt, emfehle ich dir, Form.Parent zusätzlich auf nil zu setzen. Ansonsten seh ich eigentlich keinen Fehler in deinem Code

Dust Signs

StanY 1. Jan 2005 19:42

Re: Form zur Laufzeit erstellen
 
Die Exception tritt hier auf:
Delphi-Quellcode:
Form := TChatWindow.Create(nil);

Dust Signs 1. Jan 2005 19:48

Re: Form zur Laufzeit erstellen
 
Achja, klar:

Delphi-Quellcode:
Application.CreateForm(TChatWindow, Form);
:wall: Dust Signs

StanY 1. Jan 2005 19:59

Re: Form zur Laufzeit erstellen
 
Und warum? ^^

edit: grade getestet:
Delphi-Quellcode:
  Application.CreateForm(TChatWindow,ChatWnd[0]);
  ChatWnd[0].Left := 0;
  ChatWnd[0].Top := 0;
  ChatWnd[0].Height := 200;
  ChatWnd[0].Width := 200;
  ChatWnd[0].Parent := pnlChat;
  ChatWnd[0].Show;
Geht ebenfalls nicht (;. - Derselbe Fehler.

Dax 1. Jan 2005 20:11

Re: Form zur Laufzeit erstellen
 
Dein Delphi scheint dein TChatWindows aus einer DFM-Resource laden zu wollen, was wegen der Dynamik (du hast ja kein Design für die Form im Form-Designer erstellt) nicht funktioniert. Deswegen meldet es dir, die Resource sei nicht gefunden worden.

Versuche mal, dein TChatWindow in eine andere Unit auszulagern, in der auf keine Resourcen zugegriffen wird.

StanY 1. Jan 2005 20:24

Re: Form zur Laufzeit erstellen
 
Danke. Aber wäre es denn Möglich, dass ich für die Formen schon ein Design vordefiniere? Das wäre äußerst praktisch. Wenn ja, wie? ôO

Dax 1. Jan 2005 20:47

Re: Form zur Laufzeit erstellen
 
Datei->Neu->Formular ist der Weg deines Mauszeigers ;-)

StanY 1. Jan 2005 20:52

Re: Form zur Laufzeit erstellen
 
>< danke ^^

SirThornberry 1. Jan 2005 20:52

Re: Form zur Laufzeit erstellen
 
du musst eine DFM dazu haben wenn du es über TForm.Create erstellst da im Constructor versucht wird eben diese zu laden. Aber wie schon geschrieben wurde geht es wenn du über "File->New->Form" das neue Formular erstellst (da eine dfm dabei mit angelegt wird)


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