AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Viele Formulare in einem Projekt

Ein Thema von dr. jack1 · begonnen am 5. Okt 2013 · letzter Beitrag vom 10. Nov 2013
Antwort Antwort
Seite 1 von 3  1 23   
dr. jack1

Registriert seit: 13. Jul 2013
10 Beiträge
 
Delphi 2007 Professional
 
#1

Viele Formulare in einem Projekt

  Alt 5. Okt 2013, 17:14
Hallo zusammen,

habe mal eine allgemeine Frage:

Mein Projekt umfasst derzeit ca. 36 Formulare. Ist das zwecks Geschwindigkeit und evtl. Stabilität überhaupt noch sinnvoll oder sollte man es auf einzelne Teilprogramme auslagern und diese dann ggf. aufrufen? Aktuell habe ich zwar keine Probleme, nur das Starten dauert natürlich etwas länger.
Da das Projekt ehr noch wächst, ist es für mich sicherer es im Vorfeld schon zu wissen...


Danke und viele Grüße,

Jack
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: Viele Formulare in einem Projekt

  Alt 5. Okt 2013, 17:15
Ich würde nur ein einziges Formular im Hauptprogramm erstellen lassen, alle anderen 'on demand', d.h. wenn man das Formular benötigt.
  Mit Zitat antworten Zitat
Benutzerbild von danielmagin
danielmagin

Registriert seit: 6. Dez 2003
Ort: Frankfut am Main
54 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Viele Formulare in einem Projekt

  Alt 5. Okt 2013, 20:07
genau so macht man es. alle anderen werden dann nur on demand erzeugt.
Daniel Magin
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.108 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Viele Formulare in einem Projekt

  Alt 6. Okt 2013, 14:30
Kommt wohl auch immer darauf an, was man für eine Zielgruppe hat. Ich habe mir lieber einen billigen Splashscreen zusammengezimmert und erzeuge und richte alle Formulare (z.B. Overlays und Popup-Dialoge) direkt beim Start ein.

Die Ladezeit für die Anwendung ist bei mir ziemlich egal, aber wenn ich im Betrieb eine halbe Sekunde für ein Monsterformular sparen kann nehme ich das dankend an.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.098 Beiträge
 
Delphi 12 Athens
 
#5

AW: Viele Formulare in einem Projekt

  Alt 6. Okt 2013, 14:43
OK, in Zeiten wo selber billige FertigPCs mit 16 GB RAM ausgestattet sind...


Aber man stelle sich mal vor alle würden so arbeiten...
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Viele Formulare in einem Projekt

  Alt 6. Okt 2013, 14:57
Ich versuche da stets, eine gute Balance zu halten. Fenster, die eigentlich immer wieder gebraucht werden, erzeuge ich automatisch, (modale) Eingabefenster zur Laufzeit. Damit erspart man sich auch ggf. das Löschen alter Daten. Pauschal zu sagen "alles sofort erzeugen" oder "alles erst zur Laufzeit" halte ich persönlich für blödsinnig, es kommt halt immer auf den Einzelfall an, da beides Vor- und Nachteile hat (wer hätte das gedacht? *g*).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Viele Formulare in einem Projekt

  Alt 6. Okt 2013, 15:34
Kommt wohl auch immer darauf an, was man für eine Zielgruppe hat. Ich habe mir lieber einen billigen Splashscreen zusammengezimmert und erzeuge und richte alle Formulare (z.B. Overlays und Popup-Dialoge) direkt beim Start ein.

Die Ladezeit für die Anwendung ist bei mir ziemlich egal, aber wenn ich im Betrieb eine halbe Sekunde für ein Monsterformular sparen kann nehme ich das dankend an.
Wie wäre es die (Monster)formular bei der ersten verwendung zu initalisieren und dann nur noch wieder zu verwenden. Das wäre m. E. maximal ein Kompromiss.

OK, in Zeiten wo selber billige FertigPCs mit 16 GB RAM ausgestattet sind...
Hat Windows immer noch Ressourcenbegrenzungen im Bereich Handels und GDI-Ressourcen.
Und was bringen dir 16 GB wenn du dein programm immer noch als 32-Bit Exe bereit stellst ...
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.098 Beiträge
 
Delphi 12 Athens
 
#8

AW: Viele Formulare in einem Projekt

  Alt 6. Okt 2013, 15:43
8 Programme mit 2 GB (oder gar mit 3 GB) machen das dennoch schnell voll.

Im Prinzip wie es DeddyH schon sagte.
Nur da, wo es "unbedingt" nötig ist, daß vorher laden.

Wobei man es auch teilweise machen kann, nur einige Dinge cached (das, was wirklich langsam ist) und das "langsame" Formular dennoch erst dann erstellt, wenn es benötigt wird.


Eventuell auch mal überlegen, ob das Programm wirklich 400 Formulare benötigt und man da nicht besser erstmal was Anderes optimiert.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#9

AW: Viele Formulare in einem Projekt

  Alt 6. Okt 2013, 18:39
... oder sollte man es auf einzelne Teilprogramme auslagern und diese dann ggf. aufrufen?
Nur wenn sich die Aufgaben der potentiellen Teilprogramme ohne Überlappungen trennen lassen.
Ein Beispiel wäre eine Hauptanwendung und ein Backupprogramm dass die Datenbank und lokalen Einstellungen sichert.
Oder das Hauptprogramm soll Dateien per FTP hochladen.
Hier könnte man eine weitere Anwendung beilegen, die sich nur um den Datentransfer kümmert und vom Hauptprogramm aufgerufen wird.

Delphi bietet leider recht schwache Möglichkeiten eine Anwendung zu unterteilen ("Partitionierung").
Der Versuch einige Formulare in DLLs auszulagern scheitert regelmässig an folgenden Gründen:
1.) Anwendung + DLLs benötigt mehr Speicher in RAM und auf Disk als eine monolitische Anwendung
2.) Probleme bei Updates weil Anwendung und DLLs zusammenpassen müssen
3.) aufwändigere und langsamere Entwicklung weil Schnittstellen zw. Anwendung und DLLs entwickelt werden müssen und sich nur mit höherem Aufwand ändern lassen
4.) erhöhter Aufwand beim Debuggen
5.) auch mit Delphi Packages (=DLL mit objektorientierter Schnittstelle) kommt regelmässig Stress auf weil man dann VCL-Packages benutzen muss. VCL-Packages muss man global für den ganzen Rechner installieren.
Tut man dies nicht erreicht man nichts anderes dass man den Rechner mit BPL-Dateien vollmüllt und man mindestens doppelt soviel Diskspeicher benötigt als wenn alles in einer EXE wäre.
fork me on Github
  Mit Zitat antworten Zitat
Mathematiker
(Gast)

n/a Beiträge
 
#10

AW: Viele Formulare in einem Projekt

  Alt 6. Okt 2013, 19:00
Hallo,
ich habe selbst ein Projekt laufen, dass im Moment 100 verschiedene Formulare für verschiedene Berechnungen und grafische Darstellungen nutzt.
Mit dem Tip von jaenicke
Delphi-Quellcode:
procedure ShowForm(const AFormClass: TFormClass);
var
  MyForm: TForm;
begin
    MyForm := AFormClass.Create(nil);
  try
    MyForm.ShowModal;
  finally
    MyForm.Free;
  end;
end;
...
   showform(TFirgendetwas);
werden die modalen Formulare in dem Moment gerufen, wo sie gebraucht werden. Es funktioniert absolut problemlos und vor allem geschieht der Aufruf sehr schnell.
Die Startzeit der Anwendung ist minimal, der Speicher wird nicht übermäßig belastet, was will man mehr. Natürlich geht das so nur mit modalen Fenstern.

Beste Grüße
Mathematiker
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:21 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