Autor Beitrag
Primasprit
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 22.05.07 20:10 
Hallo!

Folgendes Problem:
Ich schreibe ein Programm in dem Dateneingaben über Eingabemasken (wie in einer Datenbank) erfolgen sollen. Allerdings kommt nicht nur eine sonern sehr viele verschiedene Eingabemasken zum Einsatz zwischen denen beliebig gewechselt werden kann.
Die Eingabemasken habe ich als Frames gestaltet. Die Frame-Objekte werden zur Laufzeit erstellt. Wenn ich nun zwischen den einzelnen Eingabemasken wechsle möchte ich folgendes tun:
1. Altes Frame löschen
2. Neues erstellen.

Die Frames haben ein TPanel als Parent. Kann ich mit dem Panel 'sprechen' und irgendwie feststellen welches meiner vielen verschiedenen Frames sich zur Zeit im Panel befindet?
Kann ich über das Panel das darin befindliche Frame löschen/freigeben?

Zur Zeit mache ich das Freigeben der Frames Frame folgendermaßen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var CurrentMask: TFrame;
    Mask1: TSpezialFrame1;
    Mask2: TSpezialFrame2; ...
...
Mask1 := TSpezialFrame1.Create;
CurrentMask := Mask1; // Damit merke ich mir die derzeitig aktivierte Eingabemaske...
...
CurrentMask.Free //... um sie später bequem wieder zerstören zu können.

Ist das ein legitimer Weg das so zu tun oder wird das Object dann nicht korrekt freigegeben? Ich habe über CurrentMask zwar keinen Zugriff auf die Eingabefelder im Frame allerdings scheint das Free zu funktionieren.
Stefan.Buchholtz
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 612

WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
BeitragVerfasst: Mi 23.05.07 09:18 
Das geht so. Frames haben wie Forms eine Liste der Komponenten die sie enthalten (property Components) und geben diese frei wenn sie selbst freigegeben werden. CurrentMask.Free; gibt also dem Frame komplett wieder frei.

Stefan

_________________
Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.
Primasprit Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mi 23.05.07 15:53 
Vielen Dank! :)