![]() |
FormCreate für alle Forms beim Start aufrufen
Ich habe ein ziemlich großes Projekt, bei dem beim Start alle Formulare erstellt werden. Welche Vorteile/Nachteile hat es, nur die MainForm beim Start zu erzeugen und die ganzen anderen Formulare erst beim aufruf und beim beenden wieder freizugeben.
gruß |
Re: FormCreate für alle Forms beim Start aufrufen
Zitat:
wenn ich ein programm schreibe,dann mache ich das auch immer so. Also ich führe die anderen forms immer erst dann aus, wenn ich sie wirklich auch brauche. Ich finde, dass meine programm dadurch schnelle laufen. MFG Christian18 |
Re: FormCreate für alle Forms beim Start aufrufen
Zitat:
- Schnellerer Start - Geringerer Resourcenverbrauch (auch unter XP/2003 noch sinnvoll) |
Re: FormCreate für alle Forms beim Start aufrufen
Viele machen das um angeblich Hauptspeicher zu sparen. Im Zeitalter von 1 GB RAM sehe ich darin aber keine wichtige Begründung, sich das Leben unnötig schwerer zu machen als nötig. Da aber auch ich die Forms erst zur Laufzeit erzeuge : Variable u.a. müssen initialisiert werden. Dies sollte dann geschehen, wenn die Foms erzeugt werden, also im OnCreate der Forms und somit auch beim Programmstart. Benutze ich nun die Forms und somit auch die Variablen, dann haben die einen Wert. Daran ändert auch ein Show/Hide nichts. An dieser Stelle müßte man dann die Variablen wieder neu initialisieren. Ergo : zwei Stellen mit fast demselben Code, also auch zwei Fehlerquellen, statt einer. Zusätzlich wird die EXE dadurch größer als sie sein müßte. Es gilt schließlich auch, Redundanzen zu vermeiden.
|
Re: FormCreate für alle Forms beim Start aufrufen
oki, ich werd das denk ich mal umstellen. hab ich mir schon lang mal überlegt.
noch was dazu: würdet ihr dann gleich auch die global deklarierten form variablen rausnehmen? und ggfs. bei zugriff übergeben?! |
Re: FormCreate für alle Forms beim Start aufrufen
Wie rausnehmen ? :shock: Es geht doch mit darum diese direkt beim Erzeugen zu initialisieren.
|
Re: FormCreate für alle Forms beim Start aufrufen
naja egal.
noch was anderes dazu: wann soll ich denn dann das formular wieder freigeben? oder wird das automatisch beim schließen gemacht. so erstelle ich das formular:
Delphi-Quellcode:
ist das in ordnung?
procedure TMainForm.Button1Click(Sender: TObject);
begin Application.CreateForm(TForm, Form1); Form1.Show; end; |
Re: FormCreate für alle Forms beim Start aufrufen
Nene, lasse Application mal schön weg.
Delphi-Quellcode:
frm := TFrm.Create(self); procedure Tfrm.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; |
Re: FormCreate für alle Forms beim Start aufrufen
okay!
aber was ist da der unterschied zwischen frm := TFrm.Create(self); und Application.CreateForm(TForm, Form1); |
Re: FormCreate für alle Forms beim Start aufrufen
Der Unterschied ist, daß Application eben unnötig ist. :mrgreen: Ich benutze das nur, um z.B. etwas in der Taskleiste anzeigen zu lassen, ein Icon zu setzen usw.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 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