AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi FormCreate für alle Forms beim Start aufrufen
Thema durchsuchen
Ansicht
Themen-Optionen

FormCreate für alle Forms beim Start aufrufen

Ein Thema von mumu · begonnen am 10. Mai 2005 · letzter Beitrag vom 11. Mai 2005
Antwort Antwort
Seite 1 von 2  1 2      
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#1

FormCreate für alle Forms beim Start aufrufen

  Alt 10. Mai 2005, 10:03
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ß
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#2

Re: FormCreate für alle Forms beim Start aufrufen

  Alt 10. Mai 2005, 10:11
Zitat von mumu:
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ß
Hallo,

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
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: FormCreate für alle Forms beim Start aufrufen

  Alt 10. Mai 2005, 10:24
Zitat von mumu:
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.
Vorteil Erstellen erst wenn nötig (und freigabe sobald als möglich):
- Schnellerer Start
- Geringerer Resourcenverbrauch (auch unter XP/2003 noch sinnvoll)
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: FormCreate für alle Forms beim Start aufrufen

  Alt 10. Mai 2005, 10:35
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.
Gruß
Hansa
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#5

Re: FormCreate für alle Forms beim Start aufrufen

  Alt 10. Mai 2005, 12:05
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?!
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: FormCreate für alle Forms beim Start aufrufen

  Alt 10. Mai 2005, 12:20
Wie rausnehmen ? Es geht doch mit darum diese direkt beim Erzeugen zu initialisieren.
Gruß
Hansa
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#7

Re: FormCreate für alle Forms beim Start aufrufen

  Alt 10. Mai 2005, 17:51
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:
procedure TMainForm.Button1Click(Sender: TObject);
begin
  Application.CreateForm(TForm, Form1);
  Form1.Show;
end;
ist das in ordnung?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: FormCreate für alle Forms beim Start aufrufen

  Alt 10. Mai 2005, 18:01
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;
Gruß
Hansa
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#9

Re: FormCreate für alle Forms beim Start aufrufen

  Alt 10. Mai 2005, 18:04
okay!

aber was ist da der unterschied zwischen

frm := TFrm.Create(self);

und

Application.CreateForm(TForm, Form1);
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: FormCreate für alle Forms beim Start aufrufen

  Alt 10. Mai 2005, 18:13
Der Unterschied ist, daß Application eben unnötig ist. Ich benutze das nur, um z.B. etwas in der Taskleiste anzeigen zu lassen, ein Icon zu setzen usw.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:24 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