Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Created Forms speichern! (https://www.delphipraxis.net/150465-created-forms-speichern.html)

DarkItachi 17. Apr 2010 18:54


Created Forms speichern!
 
Hallöchen!

Ich habe vor, Items aus einer Textdatei in eine ListView anzeigen zu lassen!
Die Anzahl kann dabei variieren! (1-9)

ich will nun nicht 9 Forms machen und habe deswegen eine Frage..

Ich habe per Suche schon raus gefunden, dass man Forms createn kann!


Das funktioniert wunderbar... Gibt es eine Möglichkeit, das doppelte createn zu verhindern?

Also wenn eine Form gecreated wurde und ich dann dieses Fenster schließe und sie nochmal öffnen will (per ListView)
dann macht er eine neue Form, d.h. die alten Eingaben existieren nicht mehr!

Könnte ich nun irgendwie jede gecreatete Form ablagern, so dass ich sie beim zweiten aufruf einfach nur mit dem Show-Befehl zeigen kann?

MfG & Thx

mkinzler 17. Apr 2010 18:57

Re: Created Forms speichern!
 
Dafür müsstest du einfach den Zustand in irgendeiner Form persistent speichern.
Sei es in einer Ini, XML oder Datenbank.

DarkItachi 17. Apr 2010 19:05

Re: Created Forms speichern!
 
Beim nächsten Programm start soll es aber wieder alles Leer sein.
Ich möchte das nur in RunTime speichern oder so


Trotzdem Thanx

Medium 17. Apr 2010 19:24

Re: Created Forms speichern!
 
Statt das Formular zu zerstören, kannst du es einfach OnClose mit Hide verstecken. Dann lässt es sich einfach wieder mit Show zurück holen.

DarkItachi 17. Apr 2010 20:10

Re: Created Forms speichern!
 
Dann müsste ich aber leider mehrere Forms anlegen oder?
Das ist gerade das was ich verhindern möchte! ^^

mkinzler 17. Apr 2010 20:17

Re: Created Forms speichern!
 
Nein. Ein Formular, welches beim Schliessen nicht zerstört, sondern nur ausgeblendet wird.

DarkItachi 17. Apr 2010 20:45

Re: Created Forms speichern!
 
Ja das ist ja klar..

Dann würde ich immer nur Form2.Show benutzen aber wenn ich halt 1-9 Items habe dann brauche ich ja mehrere Aufruf-Methoden!


Wenn ich also mehrere Forms erstellen würde dann:
Item[1]: Form2.Show;
Item[2]: Form3.Show;
Item[3]: Form4.Show;
Item[4]: Form5.Show;
usw.

Aber ich möchte nicht so viele Forms erstellen (mit CodeGear RAD Studio).
Ich will nur eine Form erstellen und diese dann immer wieder createn..
(Das funktioniert auch soweit!)

Jetzt wenn zum Beispiel Item[1] ausgewählt wird, dann wird Form2 gecreated!
Wenn Form2 nach den Eingaben wieder geschlossen wird, und danach wieder geöffnet wird, dann soll Form2.Show verwendet werden!
Das kriege ich auch hin, ist ja leicht!


Bloß was soll ich machen, wenn Item[2] ausgewählt wird?
Wenn ich dort auch Form2.Create(self) verwende und wieder nach den Eingaben schließe, und wieder Item[1] wieder öffnen will, dann komme ich zum Problem...


Ich habe keine Ahnung wie ich das anstellen kann...

Vielleicht ist das jetzt verständlicher! ^^

Medium 17. Apr 2010 22:00

Re: Created Forms speichern!
 
Wenn du eine Formklasse hast, kannst du die nicht nur immer wieder erstellen, sondern auch mehrfach. Stichwort:
Delphi-Quellcode:
type
  TMyForm = class(TForm)
  // dein Formaular halt :)
  end;

  TMainForm = class(TForm)
  private
    myForms: array[9] of TMyForm;
  .
  .
  end;

implementation

.
.

procedure Foo(...)
begin
  .
  .
  myForms[i] := TMyForm.Create(...);
  .
  .
end;
Und diese dann je nach Bedarf ein- und ausblenden. Da musst du nicht 9 Formularklassen für bauen, das ist ja grad der grundlegenste Sinn und Zweck der OOP: Wiederverwendbarkeit.

DarkItachi 17. Apr 2010 22:50

Re: Created Forms speichern!
 
Genau das ist, was ich wollte...
Das war schwer zu erklären (für mich jedenfalls!)

Thx :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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