![]() |
Form zur Laufzeit erzeugen
Hallo,
ich habe meine Programme bisher immer so angelegt, das eine Mainform beim Programmstart erzeugt wird. Alle anderen Formen werden erst dann, wenn sie benötigt werden erzeugt und am Ende wieder freigegeben. (Action := cafree; ) Ich habe jetzt mit einem Freiberufler zu tun, der sich für einen Delphi Superguru hält und meint das alle Fenster undbedingt beim Programmstart erzeugt werden müssen und baut mir Projekte zwischenzeitlich so um. Inzwischen werden 40 bis 50 Forms sofort bei Programmstart erzeugt und nur verborgen und bei Bedarf angezeigt und dann wieder verborgen. Mir streuben sich bei dieser Methotik ein bischen die Haare, vielleicht verstehe ich aber auch den tieferen Sinn nicht. Was ist Eure Meinung dazu? Gruß Peter |
AW: Form zur Laufzeit erzeugen
Also eine solche Ansicht, zeugt eher von weniger "Guru"
|
AW: Form zur Laufzeit erzeugen
Vielleicht sollte er mal 2 Tage über seinem Konzept meditativ verharren. Möglicherweise kommt ihm dann die Erleuchtung :mrgreen:
|
AW: Form zur Laufzeit erzeugen
Wenn eine Form häufig und oder sehr schnell angezeigt werden muß, dann kann ein "Vorladen" dieser Form schon angebracht sein, anstatt sie ständig (aufwändig) neu erzeugen zu müssen.
Ansonsten verlängert es nur sinnlos den Programmstart und es verschwendet mehr wertvolle Resourcen. So wird in Delphi z.B. die OutOfMemory-Exception schon bei Programmstart erzeugt, weil es sonst ja passieren kann, daß im richtigen Moment dieses nicht mehr möglich ist. |
AW: Form zur Laufzeit erzeugen
Wer öffnet und schließt schon ständig 50-60 Formulare? Es macht ja Sinn, Formulare, die im normalen Programmablauf häufig benötigt werden, in der automatischen Formularerstellung zu belassen. Aber das trifft sicherlich nicht auf jedes noch so kleine Spezialfensterchen zu.
|
AW: Form zur Laufzeit erzeugen
Ich hab schonmal so einen "Guru" sagen hören, dass man sich bei Delphi um die Objekt-Freigabe nicht kümmern muss, da es Delphi ja alles selbst macht!
Als ich ihm gesagt habe, dass das für selbst erzeugte Objekte nicht zutrifft, hat er mir das erstmal gar nicht geglaubt... Soviel zum Thema Guru :lol: Ansonsten halte ich die sture Ansicht, alles müsste beim Programmstart erzeugt werden, für puren Blödsinn. Das kommt immer auf den Anwendungsfall an und muss für jede Applikation neu entschieden werden, was das sinnvollste ist. Was bringt es mir, wenn ich 200 Formulare beim Programmstart erzeuge und deswegen der User erstmal 1 Minute nichts sieht? Nichts.. |
AW: Form zur Laufzeit erzeugen
Zitat:
|
AW: Form zur Laufzeit erzeugen
Schon klar, ich glaube aber, jeder weiss, was damit gemeint ist :)
Dann korrigiere ich: "Als ich ihm gesagt habe, dass das für selbst erzeugte Objekte nicht immer zutrifft, hat er mir das erstmal gar nicht geglaubt..." besser? :D |
AW: Form zur Laufzeit erzeugen
Ein Großteil der Fenster sind modale Dialoge die mit showmodal sichtbar und mit visible = false verborgen werden. Viele werden nur sporadisch oder innerhalb einer Session garnicht gebraucht.
Zumindest bis W2000 gab es bei einer Unmenge an Fenstern ein Window - Resourcenproblem. Gruß |
AW: Form zur Laufzeit erzeugen
Wie bereits gesagt: Formulare, die bei der "normalen" Programmnutzung häufig gebraucht werden, kann man IMO ruhig automatisch erzeugen lassen. Stellt man die anderen auf "dynamisch" um, hat man meist eine gute Balance zwischen Laufzeitverhalten und Speichernutzung. Da ist ein wenig Fingerspitzengefühl angebracht. Jedenfalls ist weder die komplette automatische noch die dynamische Erzeugung immer der Königsweg.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:15 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 by Thomas Breitkreuz