Einzelnen Beitrag anzeigen

omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#23

Re: Problem mit 2. Formular

  Alt 25. Jan 2006, 22:14
So, ich glaube ich weiss jetzt warum wir immer aneinander vorbeireden und ich versuche mein Problem jetzt nochmal zu beschreiben.

In Delphi (Win32) kann man sich ja Fenster beim Start automatisch initialisieren lassen. Diese Vorgehenweise finde ich sehr schlecht (Ausnahme natürlich die Hauptform). Wenn ich andere Fenster öffnen will, erstelle ich sie mir, zeige sie mit ShowModal und gebe den Speicher dann wieder frei. Das war ja auch das Beispiel was ich auf den Anfangspost geschrieben habe.

Nun gibt es aber ja auch die Möglichkeit mit Show das Fenster anzuzeigen. Bei Delphi (Win32) bleibt das gleiche Fenster immer aktiv auch wenn es geschlossen wird und wird beim Beenden des Programms automatisch freigeben. Oder man erstellt es selber und gibt es auch wieder selber frei.
Das Entscheidene ist jetzt das man in (Win32) immer das gleiche Fenster behält, während bei NET immer ein neues Fenster erstellt wird. Das heisst mein Aufrufbeispiel...
Delphi-Quellcode:
with TWinForm1.create do
  show;
erstellt immer ein neues Fenster, wenn ich also ein zweites Fenster sehe und nochmal auf der Hauptform obiges Ereignis auslöse, dann wird noch ein zweites Fenster angelegt und sichtbar. Das ist denke ich manchmal sinnvoll, aber was ist wenn es nicht sinnvoll ist? Wenn man immer nur ein Fenster haben möchte? Wie müsste man das dann realisieren? Der Benutzer kann das zweite Fenster schliessen, ich möchte ihm aber den Inhalt wieder präsentieren, wenn er dieses zweite Fenster wieder über die Hauptform sichtbar macht.
Aber ich denke das führt schon zu weit. Bleiben wir bei der einfachen Frage: "ich möchte nur ein zusätzliches Fenster sehen", egal wie oft ich die zweite Form mit Show aufrufe.
Gut das geht zum Beispiel über eine Private-Variable, die ich ja initialisieren kann. Allerdings was ist wenn der Benutzer das Fenster schliesst? Dann wird das Fenster freigegeben und die Private-Variable zeigt nicht mehr auf ein gültiges Objekt. Wie weiss ich jetzt das ich das Fenster neu initialisieren muss?

Hoffe mein eigentliches Problem wurde jetzt etwas verständlicher. Den mit ShowDialog (ShowModal) ergeben sich diese Probleme ja nicht, mit Show allerdings schon und genau das ist meine Verständnisfrage, wie könnte man soetwas sauber lösen.

Wieder hoffnungsvolle Grüsse,
Thorsten
  Mit Zitat antworten Zitat