Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Hauptform + Unterformen


Kirschenklauer - Di 22.10.02 15:53
Titel: Hauptform + Unterformen
Und noch ein Frage habe ich:

Meine Hauptform hat den Formstyle fsMDIForm. Damit hat die Form dann ja so einen Rand drumherum. Ich möchte dann, dass all meine Unterformen nicht über diesen Rand hinauskönnen. Wenn man deren Formstyle auf sfMDIChild stellt, dann sind alle Formen im minimierten Zustand in der Hauptform sichtbar. Das möchte ich nicht.
Also möchte ich es eben so haben, wie es bei fast allen normalen Programmen ist (AOL, MGIPhotosuite....).
Könnt ihr mir sagen, wie das geht?

Juliane


LCS - Mi 23.10.02 09:27

Hi
das liegt daran, dass MDIChilds beim Schliessen nicht aus dem Speicher entfernt, sondern nur minimiert werden.
Eine Lösung wäre, die Fenster zur Laufzeit selbst erzeugen und im FormClose Event die Variable Action auf caFree zu setzen.

Gruss Lothar


Kirschenklauer - Mi 23.10.02 14:34

????
Das verstehe ich nicht. Kannst du das einfacher erklären? Vielleicht mit Beispiel?


LCS - Mi 23.10.02 15:09

Hi
Unterformular in den Projektoptionen aus der Liste der automatisch Erstellen Formulare rausnehmen.
Unterformular erzeugen und anzeigen:

Quelltext
1:
2:
3:
  ...
  with TUnterformular.Create(self) do
    show;


Im FormClose von Unterformular:

Quelltext
1:
2:
3:
4:
procedure TUnterformular.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;


Gruss Lothar


Kirschenklauer - So 27.10.02 18:31

Ich habe es ausprobiert, aber es funktioniert nicht. Ist es eine ganz neue Form, die erstellt wird, oder kann ich auch eine bereits bestehende form angeben?
Jedenfalls hat er so einen Fehler reingebracht, dass alles, was ich auf der zweiten form erstelle schon auf der ersten existiert.

Ist aber eigentlich auch nicht so wichtig. Ich versuche es jetzt mit Panels.

Gruß,
Juliane