Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Weitere Forms nach schließen leeren (https://www.delphipraxis.net/42611-weitere-forms-nach-schliessen-leeren.html)

Nisbo 21. Mär 2005 16:50


Weitere Forms nach schließen leeren
 
Moin Moin

denke mal langsam nerve ich :wiejetzt: aber einige sachen finde ich leider nicht durch suchen :(

Ich habe Ein Form --> Form1 von dem 6 weitere Forms geöffnet werden, funktioniert auch ohne Probleme, nur wenn ich jetzt sagen wir mal Form7 öffnen, dort was mache es wieder schließe und wieder öffne, dann ist das Form nicht im "urzustand" sondern das was ich da mal eingegeben habe ist noch vorhanden.

Wie kann man das umgehen ? also quasi resetten ?

toms 21. Mär 2005 16:52

Re: Weitere Forms nach schließen leeren
 
Hallo!

Erzeuge die Forms dynamisch und gib sie beim Beenden wieder frei.
Dann findest du bei jedem weiteren Anzeigen der Forms wieder den "urzustand" vor.

malo 21. Mär 2005 16:55

Re: Weitere Forms nach schließen leeren
 
Du kannst ja im OnClose des Form7 einfach alle Daten in den "Urzustand" zurückversetzen (also Komponenten wieder richtig setzen, Variablen zurück etc.) ;)

toms 21. Mär 2005 16:57

Re: Weitere Forms nach schließen leeren
 
Zitat:

Zitat von malo
Du kannst ja im OnClose des Form7 einfach alle Daten in den "Urzustand" zurückversetzen (also Komponenten wieder richtig setzen, Variablen zurück etc.) ;)

Ja, auch eine Moeglichkeit :cyclops: Einfacher ist aber sicher mein Vorschlag.

Nisbo 21. Mär 2005 17:00

Re: Weitere Forms nach schließen leeren
 
mmm dynamisch erzeugen ? wie soll das denn funktionieren ?
ich meine wie habe ich dort vorzugehen

Sharky 21. Mär 2005 17:22

Re: Weitere Forms nach schließen leeren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Nisbo
...ich meine wie habe ich dort vorzugehen

Hai Nisbo,

schaue dir mal mein Beispiel im Anhang an. Dabei solltest Du dir auch ansehen das ich nur die "MainForm" beim Programmstart erzeuge (Menü: Projekt - Optionen - Formulare).

Nisbo 21. Mär 2005 17:35

Re: Weitere Forms nach schließen leeren
 
kann ich doch nicht, ich habe doch Lazarus, aber da gibt es diese Option auch

Was muß ich jetzt da machen ?

Links Stehen jetzt 7 Forms udn alle sind blau markiert, rechts ist das gesammte feld leer
ich vermute mal das ich dort alles außer Form1 reinverschieben muß oder ?

und dann dann ich den aufruf des fensters wie gewohnt mit

Form7.ShowModal aufrufen ?

will da nix falschmachen, nicht das nachher das gesamte Projekt hinüber ist

Jens Schumann 21. Mär 2005 17:49

Re: Weitere Forms nach schließen leeren
 
Zitat:

Zitat von Nisbo
kann ich doch nicht, ich habe doch Lazarus, aber da gibt es diese Option auch

Was muß ich jetzt da machen ?

Links Stehen jetzt 7 Forms udn alle sind blau markiert, rechts ist das gesammte feld leer
ich vermute mal das ich dort alles außer Form1 reinverschieben muß oder ?

und dann dann ich den aufruf des fensters wie gewohnt mit

Form7.ShowModal aufrufen ?

will da nix falschmachen, nicht das nachher das gesamte Projekt hinüber ist

Ich habe Lazarus noch nie gesehen. Ich vermute aber es ist sehr Delphi ähnlich (habe ich gelesen). Alle Formularen bis auf das Hauptformular kannst Du in dem Dialog auf die rechte Seite schieben. Dann werden die Formulare nicht schon beim Programmstart automatisch erzeugt.

Du musst die Formulare zur Laufzeit erzeugen. Grundsätzlich funktioniert das so:
Delphi-Quellcode:
With TForm7.Create(Application) do
  begin
  Try
    ShowModal;
  Finally
    Release;
    end;
  end;
Im OnClose Event des Formulars setzte Du Action auf caHide.

Nisbo 21. Mär 2005 18:01

Re: Weitere Forms nach schließen leeren
 
Also lass uns das nochmal zusammenfassen

Ich gehe auf Projekt --> Optionen --> Formulare
und dort dann alles außer Form1 nach rechts verschieben ?

Der Aufruf eines Formulars erfolgt dann so ?

Delphi-Quellcode:
procedure TForm1.MenuItem32Click(Sender: TObject);
begin
With TForm7.Create(Application) do
  begin
  Try
    ShowModal;
  Finally
    Release;
    end;
  end;
end;
statt:

Delphi-Quellcode:
procedure TForm1.MenuItem32Click(Sender: TObject);
begin Form7.ShowModal; end;
und was muß ich jetzt wo noch machen ? also das mit dem caHide ?

Jens Schumann 21. Mär 2005 18:14

Re: Weitere Forms nach schließen leeren
 
Hallo,
ja - genau so. Achte aber darauf, dass Du im OnClose Event des Formulars Action auf caHide setzt


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr.
Seite 1 von 2  1 2      

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