Autor Beitrag
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Fr 22.11.02 18:27 
Einfache Frage: Kann man ein MDI-Child-Form verstecken, ohne es zerstören zu müssen? hide und visible:=False funktionieren ja nicht.

Ich möchte nicht immer das Formular zerstören. Es müssen nicht unbedingt mehrere Instanzen möglich sein, schön wäre es schon.

Das Problem ist nämlich, dass ich ein Formular hab, um PDF-Dateien anzuzeigen, entweder lade ich das immer in dasselbe Formular oder erzeuge eben mehrere (wies besser isch). Denn das Zerstören eines solchen Formulars dauert fast 10sec und solange is das Programm blockiert. Gibts da was?
Prana
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 24.11.02 23:33 
Hi

Ich bin super neu bei Delphi. Hatte das Problem auch. Nun ich mache das so. Welchsle die formstlyle zu fsNormal und verstecke es.
und wenn es sichtbar sein sol dann wieder zurück ^^

Ich glaube es muss eine bessere Methode geben aber kenne leider nur das ...
UGrohne Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 25.11.02 02:09 
Ja, das von dir hab ich auch schon gelesen, aber das riecht mir sehr nach holzhammer-methode und das is net so mein ding.

Es MUSS was besseres geben...

Gruß
Prana
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 25.11.02 15:11 
Hi

Ja, das ist mir klar. Suche auch nach besseren Methoden, aber nichts gefunden und anscheinend hat keiner eine Idee dazu. Child Windows lassen sich einfach nicht auf Hide setzen...

Wie schliesst man die Childs den? Ich muss das so machen, den Close geht nicht...

AboutBox.FormStyle := fsNormal;
AboutBox.Close;
UGrohne Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 25.11.02 16:00 
Also, wenn ich die Dinger schließen will, dann erstelle ich sie einfach manuell.
Dazu nimmst Du sie in den Optionen unter den automatisch erstellten Formularen raus und erstellst sie selbst mit:

ausblenden Quelltext
1:
2:
3:
4:
5:
var testform:TTestform;
begin
testform:=TTestform.create(mainform);
testform.Show;
end;

Zu guter letzt musst du im OnClose-Event des CHild-Forms noch
ausblenden Quelltext
1:
(Sender as TForm).Free;					


ausführen. Achja, hiermit lassen sich auch mehrere Instanzen des Formulars erzeugen. Wenn Du nur eine brauchst, musst Du überprüfen, ob das Formular schon existiert, das steht hier irgendwo im Forum bestimmt schon, habs grad net auswendig im Kopf.

Gruß, Uwe