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 Programm soll verschiedene TForms starten können (https://www.delphipraxis.net/71325-programm-soll-verschiedene-tforms-starten-koennen.html)

hackie3of5 13. Jun 2006 10:04


Programm soll verschiedene TForms starten können
 
Hi Leute!
Also, mein Programm ist bisher so aufgebaut, dass es eine Startform gibt - ein Wartebildschirm wird angezeigt, während alle Einstellungen usw. geladen werden - und dann soll von der Startform eine Entscheidung getroffen werden: Es soll eine von vielen TForms geladen werden. Die Frage ist jetzt, wie mach das so, dass nicht alle Formen im Arbeitsspeicher liegen(kenn mich da nicht so gut aus).

Bisher mach ich das mit EINER Form so, dass ich die Visible-Eigenschaft der Startform auf False, und die des eigentlichen Programmes auf True setze. Kann mir vorstellen, dass die Startform - die dann ja eigentlich nicht mehr gebraucht wird - sinnlos im Speicher liegt, wenn ich nur die Visible-Eigenschaft benutze. Kennt jemand DA ne bessere Lösung? Schließen kann ich die Startform nicht, weil diese als Hauptformular eingetragen ist und ich das gesamte Programm bei einem Close-Aufruf an die Form beende.

Sollte ich mich unklar ausgedrückt haben, entschuldige ich mich im Voraus.

Gruß

mkinzler 13. Jun 2006 10:08

Re: Programm soll verschiedene TForms starten können
 
Du kannst ja die Forms zur Luafzeit instantiieren. Also die Erzeugung im Projekt deaktivirenen und innerhalb der Hauptform:

Delphi-Quellcode:
 OpenForm := TOpenForm.Create( self);
  OpenForm.Open;

hackie3of5 13. Jun 2006 10:20

Re: Programm soll verschiedene TForms starten können
 
Und wie deaktiviere ich die Erschaffung der Forms vom Programm selbst?

Was für ein Befehl ist das : "OpenForm.Open;"? Meine Form will mir den nicht anzeigen?

Ich hab übrigens Delphi 5 prof.

mkinzler 13. Jun 2006 10:24

Re: Programm soll verschiedene TForms starten können
 
Zitat:

Zitat von hackie3of5
Und wie deaktiviere ich die Erschaffung der Forms vom Programm selbst?

In dem du entsprechenden Application.CreateForm( ...); aus der Projektdatei löscht oder auskommentierst.
Zitat:

Was für ein Befehl ist das : "OpenForm.Open;"? Meine Form will mir den nicht anzeigen?
Soory, müßte .Show heißen.

oldmax 13. Jun 2006 12:07

Re: Programm soll verschiedene TForms starten können
 
Hi
Du kannst über Projekt -> Optionen -> Formulare die Forms in die Warteschleife schicken, die du nicht brauchst.
in deiner Ereignisroutine rufst du dann
fogendes auf:
Delphi-Quellcode:
Application.CreateForm(TForm_x,Form_x);
Form_x.Visible:=False;
Form_x.ShowModal;
Form_x.Free;
Funktioniert zumindest bei meinen Delphis 3 und 4 . Versuchs einfach, evtl. benutz die Hilfe. Gruß oldmax


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