Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Dynamisch Formen erzeugen (https://www.delphipraxis.net/141060-dynamisch-formen-erzeugen.html)

stho 1. Okt 2009 14:19


Dynamisch Formen erzeugen
 
Hallo Leute,

Welche Tutorials muss ich mir angucken wenn ich dynamisch Formen mit bestimmten Inhalten erzeugen will? (Beispiel: Chat-Fenster)

Gibts dazu gute Tutorials oder Beispiele?

Liebe Grüße

fatalerror 1. Okt 2009 14:47

Re: Dynamisch Formen erzeugen
 
Ein Tutorial dazu kenne ich nicht, ist aber relativ einfach:

1. die unit in die uses Liste aufnehmen

implementation

uses

unit2;

2. in der gewünschten Prozedur die Form erzeugen:



procedure TForm1...
var
Form2: TForm2;

begin
...
Form2 := TForm2.Create(Form1);

--> Form2 wird freigegeben wenn form1 freigegeben wird.

oder

Form2 := TForm2.Create(nil);
--> hier bist Du selbst verantwortlich für die Freigabe, es wird kein Owner übergeben.

oder

...
Form2 := TForm2.Create(Application);

--> Die Form wird freigegeben beim Beenden des Programmes

stho 1. Okt 2009 15:20

Re: Dynamisch Formen erzeugen
 
Aber hat denn dann die Form dann auch die Buttons / labels / Funktionen hinter den buttons / ... ? :gruebel:
Ist sie sichtbar oder unsichtbar?
Kann ich die verwenden wie die Form1? oder ist die nur imaginär? :gruebel:

Danke schonmal für deine ausführliche Antwort

fatalerror 1. Okt 2009 16:44

Re: Dynamisch Formen erzeugen
 
Du erzeugst die Form mit allen Buttons und Funktionen, Prozeduren ganz normal innerhalb der IDE.
Anschliessend legst du in den Projekt Optionen fest, dass dieses Formular nicht automatisch erzeugt wird.
Du kannst dann innerhalb deines Programmes die Form (fast) beliebig oft erzeugen.

Um die Form anzuzeigen nachdem du sie erzeugt hast, verwendest du einfach den Befehl Form_xxx.show;

Beispiel um eine Form zu erzeugen und Modal anzuzeigen
[/delphi]
var
forminfo: TForm2;
begin

forminfo:= TForm2.Create(nil);
try
forminfo.Caption:= 'dynamisch erstellte Form;
forminfo.ShowModal;

finally
forminfo.Free;
end;

end;
[/delphi]


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 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