Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Form dynamisch erstellen mit Frame (https://www.delphipraxis.net/154680-form-dynamisch-erstellen-mit-frame.html)

moelski 21. Sep 2010 10:34

Delphi-Version: 2010

Form dynamisch erstellen mit Frame
 
Moin !

Habe da diesen Code:
Delphi-Quellcode:
procedure TSourceNrCommRS232.ConfigDialog;
var
  Form       : TForm2;
  ConfigFrame : TFrame;
begin
  Form             := TForm2.Create(NIL);

  ConfigFrame       := TNrCommConfig.Create(Form);
  ConfigFrame.Parent := TForm2(Form).Panel2;

  TNrCommConfig(ConfigFrame).COMPort := FNrComm;
  Form.ShowModal;
  TNrCommConfig(ConfigFrame).COMPort := NIL;

  ConfigFrame.Free;
  Form.Free;
end;
Form ist ein ganz normales Form mit nem Panel drauf. Ansonsten leer. Wird auch nicht zur Laufzeit mit automatisch angelegt.

Das Frame ist auch nix besonderes. Ein paar Konfig elemente drauf.

Wenn ich den Code starte sagt er mir:
Aus einem sichtbaren Fenster kann kein modales gemacht werden.

Kommt bei ShowModal.

Verstehe ich aber gerade nicht :(

Bummi 21. Sep 2010 10:40

AW: Form dynamisch erstellen mit Frame
 
Hat Dein Form2 die Property visible=true?

moelski 21. Sep 2010 10:50

AW: Form dynamisch erstellen mit Frame
 
Oh weia ... Ich geh ma schnell Mittagessen.

Das wars :oops:

himitsu 21. Sep 2010 10:53

AW: Form dynamisch erstellen mit Frame
 
Oder
Delphi-Quellcode:
ConfigFrame.Show;
.

Delphi-Quellcode:
TForm2(Form)
ist nicht nötig, da Form doch schon vom Typ TForm2 ist
und wenn du ConfigFrame auch als TNrCommConfig deklarierst, dann kannst du bei Diesem ebenfalls den Typecast weglassen.

PS: Ich hoffe du denkst auch noch an die Resourcenschutzblöcke. :angel:

moelski 21. Sep 2010 11:14

AW: Form dynamisch erstellen mit Frame
 
Moin !

Zitat:

ist nicht nötig, da Form doch schon vom Typ TForm2 ist
und wenn du ConfigFrame auch als TNrCommConfig deklarierst, dann kannst du bei Diesem ebenfalls den Typecast weglassen.
Ja das ist mir klar. Form war nur vorher Tform. Und da brauchte ich den Cast.

Den zweiten Cast kann man sich sparen. stimmt.

Zitat:

Ich hoffe du denkst auch noch an die Resourcenschutzblöcke
Damit meinst du das ?

Sowas in der Form?
Delphi-Quellcode:
var
  myForm : TMyForm;
begin
  myForm := TMyForm.Create(nil);
  try
    myForm.ShowModal;
  finally
    myForm.Free;
  end;
end;

himitsu 21. Sep 2010 11:22

AW: Form dynamisch erstellen mit Frame
 
Zitat:

Zitat von moelski (Beitrag 1050929)
Sowas in der Form?

Jupp :-D

moelski 21. Sep 2010 11:29

AW: Form dynamisch erstellen mit Frame
 
Kommt noch. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz