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 2 von 2     12   
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 17:27
Zumindest bis W2000 gab es bei einer Unmenge an Fenstern ein Window - Resourcenproblem.
Gibts es auch unter XP/Vista/Win7. Die Grenzen sind nur "etwas" weiter nach hinten verschoben.

Also das vorgehen alles beim Programmstart zu erzeugen halte ich für blödsinn. Wir gehen eigentlich auch immer her alle von Delphi erzeugten globalen Formularvariablen gleich aus dem Quellcode wieder zu löschen um hier keine Probleme damit zu haben versehentlich ab und zu dieses Variable zu verwenden auch wenn man in einer ganz anderen Instanz ist.
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
 
#12

AW: Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 19:20
Ich sehe das ähnlich : Vorgehensweise ist nicht gerade hilfreich. Auch die "Gurus" kochen nur mit Wasser. Werden 50 Forms oder mehr permanent im Speicher gehalten, Variablen verändert etc., dann ist das Programm in einem gewissen Zustand, der ohne allergrösste Vorsicht nicht als sicher bezeichnet werden kann.

Es wäre also eine gewisse Vorsichtsmassnahme, die Forms immer wegzumachen und bei Bedarf neu zu createn. Inkl. Initialisierungen usw. Der Speicherplatzbedarf spielt da nicht mal die grosse Rolle, die Logik aber schon.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#13

AW: Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 20:16
Moin,
ich sehe den Vorteil bei der dynamischen Erstellung daran, dass es automatisch vergisst nach dem Freigeben.

MfG
Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Hansa

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

AW: Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 20:21
Was soll was vergessen ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#15

AW: Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 20:35
Variablen verändert etc., dann ist das Programm in einem gewissen Zustand, der ohne allergrösste Vorsicht nicht als sicher bezeichnet werden kann.
Das sehe ich auch als größtes Argument dagegen an. Diese globalen Formular-Variablen sind gefährlich und ausserdem führt das bei Anfängern zu einem schlechtem Stil. Bei 50 Fenstern hört sich das gar nicht gut an, wenn ich da irgendetwas zu sagen hätte würde ich versuchen, es dieser Person auszutreiben, wenn da an meinem Quelltext rumgefuchtelt wird
Gibt meiner Meinung nach keine Vorteile, deshalb lieber gleich richtig machen und auf saubere Strukturen setzen, ist auch irgendwie mehr OOP finde ich.
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Hansa

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

AW: Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 20:52
...Diese globalen Formular-Variablen sind gefährlich...
Deshalb ja meine Meinung : es gilt, zumindest die Gefahr etwas zu entschärfen. Läuft ein Programm von 8:00 bis 20:00 dann könnte das eng werden. Eventuell wird da immer einunddieselbe Form immer geöffnet und geschlossen. Im FormShow/FormClose für Ordnung zu sorgen, das ist ja schön. Allerdings : mit Vriablen meine ich jetzt nicht nur integer. Wenn z.B. eine TStringlist gebraucht wird, dann muss die erzeugt werden. Nach meiner Erfahrung ist es da besser, notfalls einen Runtime-Error zu provozieren, um ihn dann zu beseitigen, anstatt Wochen/Monate zu warten, um die gewisse Stelle dann nach Reklamation lokalisieren zu müssen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 21:00
Nja, für alle, welche ihre Daten in der GUI halten, ist sowas nunmal ein gängiger Weg, wenn alles immer existiert, da sonst ja die Daten verschwinden würden.
$2B or not $2B
  Mit Zitat antworten Zitat
hanspeter

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

AW: Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 21:03
Meine bisherige Praxis sah eigentlich in Kurzform so aus.

Delphi-Quellcode:
With TWorkform.Create(nil) do
begin
  Init(Parameterliste);
  Showmodal;
  Free;
end;
In der Initroutine werden Comboboxen, Listen u.s.w. initialisiert.
Dieser Teil ist jetzt in das Formcreate bei Programmstart gewandert.
Das sollte , gerade in Client-Server Systemen, den Effekt haben, das bei Datenänderungen ein Neustart des Programmes notwendig ist.
Mit dem obigen Aufruf würde ein schließen und wieder öffnen des Fensters ausreichen.

Gruß

Geändert von mkinzler (18. Aug 2010 um 21:08 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Form zur Laufzeit erzeugen

  Alt 18. Aug 2010, 21:39
Wenn, dann bitte so:
Delphi-Quellcode:
with TWorkform.Create(Parameterliste) do
  try
    ShowModal;
  finally
    Free;
  end;
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Form zur Laufzeit erzeugen

  Alt 19. Aug 2010, 01:06
Hallo,

ich bevorzuge eigentlich die Variante, dass sich das Form selber erstellt und auch selber wieder freigibt. Finde hat den Vorteil das der Aufruf immer gleich ist und die Änderungen sich nur an einer Stelle befinden.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 11:20 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