Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Formulare erstellen und/oder ganz entfernen (https://www.delphipraxis.net/40354-formulare-erstellen-und-oder-ganz-entfernen.html)

davar 14. Feb 2005 18:40


Formulare erstellen und/oder ganz entfernen
 
Hallo Leute,

habe mich hier etwas umgeschaut und ähnliche Probleme gefunden, aber noch keine Lösung.

Also, folgendes Problem:

ich habe ein Formular, auf dem zur Laufzeit Komponenten erstellt und abgelegt werden. So weit ok. Wenn man jedoch das Formular schließt (Form.Close) und nachher wieder öffnet, sind diese Komponenten immer noch da.

Wie bekomme ich dieses Formular wieder in den Ursprungszustand zurück?

Ich habe mir überlegt, das Formular unter Projekt/Optionen als verfügbar zu markieren und erst zur Laufzeit zu erstellen. Und nachdem man fertig ist, soll es aus dem Speicher entfernt werden, um später wieder erstellt werden zu können. Nur schaffe ich das nicht ganz. Meint ihr, der Schritt wäre ok, und wenn ja, wie bekomme ich das hin?

MfG

davar

Binärbaum 14. Feb 2005 20:10

Re: Formulare erstellen und/oder ganz entfernen
 
Die Komponenten könnte man doch mit
Delphi-Quellcode:
 Panel1.Free;
 Button1.Free;
 //usw.
entfernen.

MfG
Binärbaum

alcaeus 14. Feb 2005 20:16

Re: Formulare erstellen und/oder ganz entfernen
 
Hallo davar,

du solltest nicht die globalen Formvariablen verwenden. Wenn du z.B. Form2 in Form1 verwenden willst, kannst du folgendes machen:

Delphi-Quellcode:
type TForm1=class(TForm)
//...
private
  MyForm: TForm2;
//...

procedure TForm1.FormCreate(Sender: TComponent);
begin
  MyForm := TForm2.Create;
end;

procedure TForm1.Button1Click(Sender: TComponent);
begin
  MyForm.Show;
end;

procedure TForm1.FormClose(Sender: TComponent);
begin
  MyForm.Free;
end;
Hier erstelle ich z.B. im OnCreate das zweite Form, das koenntest du auch in anderen Routinen machen, so auch im ButtonClick. Beim Schliessen von Form1 geben wir auch MyForm frei, und das koenntest du auch in einer anderen beliebigen Methode machen.

Greetz
alcaeus

davar 14. Feb 2005 21:51

Re: Formulare erstellen und/oder ganz entfernen
 
Hallo alcaeus,

das habe ich jetzt mal programmiert. Das Hauptformular heisst FormHauptformular, das zu erstellende Formular FormErstellen.

Jetzt habe ich deinen Quellcode in meinen eingebaut und dementsprechend geändert:

Delphi-Quellcode:
  private
    MyForm: TFormErstellen;
Hier sagt er mir bereits "Undefinierter Bezeichner: 'TFormErstellen'.

Und wenn es hier mal laufen sollte (habe schon zig verschiedene Versionen ausprobiert), kommt weiter unten bei

Delphi-Quellcode:
MyForm:= TFormErstellen.Create;
die Meldung 'Nicht genügend wirkliche Parameter'. Habe schon die verschiedensten Varianten ausprobiert, komme aber nicht zu einem Ergebnis..

MfG

davar

Binärbaum 14. Feb 2005 22:06

Re: Formulare erstellen und/oder ganz entfernen
 
Zitat:

Zitat von davar
Und wenn es hier mal laufen sollte (habe schon zig verschiedene Versionen ausprobiert), kommt weiter unten bei

Delphi-Quellcode:
MyForm:= TFormErstellen.Create;
die Meldung 'Nicht genügend wirkliche Parameter'. Habe schon die verschiedensten Varianten ausprobiert, komme aber nicht zu einem Ergebnis..

Probier doch mal
Delphi-Quellcode:
MyForm:= TFormErstellen.Create(nil);
oder
Delphi-Quellcode:
MyForm:= TFormErstellen.Create(FormHauptformular);
MfG
Binärbaum


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr.

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-2025 by Thomas Breitkreuz