ich habe da schon wieder einmal ein kleines Problem.
Ich wollte in einer Anwendung ein Form automatisch generieren und dann wieder freigeben.
Das Form wird aus einer Datenbank mit unterschiedlichem informationen gespeist. Ich weiß also im vonherein nicht was alles generiert wird, außer, das in dem Form mehrere Groupboxen und mehrere checkboxen in den einzelnen Groupboxen automatisch erstellt werden.
Das erstellen funktioniert recht einfach mit (nur ein Beispiel, noch nicht aus einer Datenbank)
Code: Alles auswählen
procedure TForm1.Button2Click(Sender: TObject);
var
f:TForm;
fCheckBox:TCheckbox;
fGroupBox: TGroupBox;
c:string;
begin
f:=TForm.Create(self);
f.SetBounds(0,0,450,450);
f.Caption:='Dies ist ein Test';
fGroupBox:=TGroupBox.Create(self);
with fGroupBox do begin
Name := 'kopieren';
caption := 'kopieren';
SetBounds(10, 10, 200, 200);
parent := f;
end;
fCheckBox := TCheckbox.Create(Self);
with fCheckBox do
begin
Name := 'Name12';
Caption := 'Hallo 1';
SetBounds( 10, 20, 10, 5);
visible:=true;
fCheckBox.Parent := fGroupBox;
end;
fGroupBox:=TGroupBox.Create(self);
with fGroupBox do begin
Name := 'spiegeln';
caption := 'spiegeln';
SetBounds(210, 10, 200, 200);
parent := f;
end;
fCheckBox := TCheckbox.Create(Self);
with fCheckBox do
begin
Name := 'Name1';
Caption := 'Hallo 1';
SetBounds( 10, 20, 10, 5);
visible:=true;
fCheckBox.Parent := fGroupBox;
end;
f.ShowModal;
showmessage(inttostr(f.ControlCount));
end;
Wenn ich versuche mt f.destroy oder f.free nur das Fenster zu beenden, dann meckert er immer noch rum, dass bestimmte Elemente noch vorhanden sind.
Ein for I := 0 to f.count-1 scheint auch nicht zu funktionieren, da ich hier bei bei 4 Elementen auf dem Fenster nur eine 2 zurück gegeben bekomme.
Auch wenn ich z.B.
Code: Alles auswählen
showmessage(inttostr(f.kopieren.ControlCount));
Muss ich mir jedes Element merken, oder gibt es eine einfache Möglichkeit alle Elemente und das Fenster frei zu geben, damit ich dieses neu erstellen kann.
Ich habe da schon alss Alternative an ein zusätzliches thread gedacht.
Über Ideen würde ich mich sehr freuen.
Mit freundlichem Gruß
Ralph