AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Form zur Laufzeit erzeugen

Ein Thema von hanspeter · begonnen am 18. Aug 2010 · letzter Beitrag vom 19. Aug 2010
Antwort Antwort
Seite 1 von 2  1 2      
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#1

Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 16:07
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 16:09
Also eine solche Ansicht, zeugt eher von weniger "Guru"
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#3

AW: Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 16:14
Vielleicht sollte er mal 2 Tage über seinem Konzept meditativ verharren. Möglicherweise kommt ihm dann die Erleuchtung
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 himitsu
himitsu

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

AW: Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 16:15
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (18. Aug 2010 um 16:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#5

AW: Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 16:19
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.
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
blackfin
(Gast)

n/a Beiträge
 
#6

AW: Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 16:29
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

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..
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 16:31
Zitat:
Als ich ihm gesagt habe, dass das für selbst erzeugte Objekte nicht zutrifft
Kommt darauf an, wenn es sich um Komponenten handelt und diese einen Owner haben, geht das schon oder wenn diese in Listen abgelegt werden.
Markus Kinzler
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#8

AW: Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 16:34
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?
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#9

AW: Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 16:34
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ß
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#10

AW: Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 16:40
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.
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

Geändert von DeddyH (18. Aug 2010 um 17:29 Uhr)
  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 08:54 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