Einzelnen Beitrag anzeigen

TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: zweites Formular lässt sich nicht anzeigen

  Alt 18. Mär 2005, 19:39
kann es event. sein, dass du in deiner Projektdatei irgendwie aus Versehen eine Zeile gelöscht hast, die dort jetzt nämlich eigentlich noch mit anwesend sein müsste, und zwar diese:

 Application.CreateForm(Tfrmnew, frmnew); Irgendwie spricht dafür auch die Existenz der folgenden Zeile (in der Uses-Klausel deiner Projektdatei):

  unnew in 'unnew.pas{frmnew}; Beide Zeilen werden nämlich automatisch erzeugt, wenn ich über das Hauptmenue Datei->Neu->Formular meinem Projekt eine weitere Form zufügen möchte. ...Und dementsprechend werden also auch alle nicht dynamisch erzeugte Formen am Programmstart erst einmal durch solche Anweisungen gemeinsam erzeugt. Womit also auch dein erster Show-Form-Versuch:

frmnew.Show; so dann eigentlich korrekt gewesen wäre. Dein aktueller Versuch, die Form dynamisch mittels

Tfrmnew.Create(self).Show; zu erzeugen, ist jedoch eher falsch, weil du danach bei jedem neuen Click auf den cmdNew-Button (den nehm ich jetzt mal an) dann nämlich immer wieder eine neue solche Form erzeugen würdest, ohne eine alte solche davor überhaupt noch freigeben zu können. Hierzu hättest du den Ptr "frmnew" bei der Erzeugung der Form nämlich zuerst entsprechend mit laden müssen:

Delphi-Quellcode:
frmnew := Tfrmnew.Create(self);
// danach dann event: frmnew.Show;
um dann nachher irgendwann diese wieder mittels der Free-Methode freigeben zu können:

frmnew.free; (Solltest du jedoch die wahrscheinlich irgendwie verloren gegangene erste Zeile oben wieder reinstallieren wollen, dann brauchst du jetzt kein eigenes Free'n dieser Form mehr auszuführen (wird dann beim Ende der Application automatisch erledigt)) usw. usf... *g*
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat