AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Form zur Laufzeit erstellen

Ein Thema von StanY · begonnen am 1. Jan 2005 · letzter Beitrag vom 1. Jan 2005
Antwort Antwort
StanY

Registriert seit: 5. Aug 2004
145 Beiträge
 
#1

Form zur Laufzeit erstellen

  Alt 1. Jan 2005, 19:37
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
  Mit Zitat antworten Zitat
Dust Signs

Registriert seit: 28. Dez 2004
Ort: Salzburg
379 Beiträge
 
#2

Re: Form zur Laufzeit erstellen

  Alt 1. Jan 2005, 19:41
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
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
  Mit Zitat antworten Zitat
StanY

Registriert seit: 5. Aug 2004
145 Beiträge
 
#3

Re: Form zur Laufzeit erstellen

  Alt 1. Jan 2005, 19:42
Die Exception tritt hier auf:
Form := TChatWindow.Create(nil);
  Mit Zitat antworten Zitat
Dust Signs

Registriert seit: 28. Dez 2004
Ort: Salzburg
379 Beiträge
 
#4

Re: Form zur Laufzeit erstellen

  Alt 1. Jan 2005, 19:48
Achja, klar:

Application.CreateForm(TChatWindow, Form); Dust Signs
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
  Mit Zitat antworten Zitat
StanY

Registriert seit: 5. Aug 2004
145 Beiträge
 
#5

Re: Form zur Laufzeit erstellen

  Alt 1. Jan 2005, 19:59
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.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#6

Re: Form zur Laufzeit erstellen

  Alt 1. Jan 2005, 20:11
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.
  Mit Zitat antworten Zitat
StanY

Registriert seit: 5. Aug 2004
145 Beiträge
 
#7

Re: Form zur Laufzeit erstellen

  Alt 1. Jan 2005, 20:24
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
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#8

Re: Form zur Laufzeit erstellen

  Alt 1. Jan 2005, 20:47
Datei->Neu->Formular ist der Weg deines Mauszeigers
  Mit Zitat antworten Zitat
StanY

Registriert seit: 5. Aug 2004
145 Beiträge
 
#9

Re: Form zur Laufzeit erstellen

  Alt 1. Jan 2005, 20:52
>< danke ^^
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Form zur Laufzeit erstellen

  Alt 1. Jan 2005, 20:52
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)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:54 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