Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Formular manuell createn (https://www.delphipraxis.net/147693-formular-manuell-createn.html)

volf 14. Feb 2010 11:34


Formular manuell createn
 
Hallo,

wie kann man in delphi manuell (aus einer konsolenanwendung) formulare createn? Ich habe schon danach gegoogelt und bin auf zwei Varianten gestoßen.
1.

Delphi-Quellcode:
var

Formular:TForm;
.
.
.
begin

Formular:=TForm.Create(???);
Formular.show;
end.
Hier erscheint zwar das Formular, aber es ist eingefroren, so das man es nicht bewegen kann. (Stichwort: Thread?)

2.

Delphi-Quellcode:
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
Hier friert das Fenster nicht ein. Was ist den der Unterschied zum vorigen?

Wie kann ich jetzt z.B. einen Button aufs Formular platzieren:

Delphi-Quellcode:
  Buts:=TButton.Create(nil);
  Buts.Show;
  Buts.Parent:=Form1;
So habe ich es versucht.



Mfg

Uwe Raabe 14. Feb 2010 11:43

Re: Formular manuell createn
 
Du kannst von einem Konsolenprogramm nicht erwarten, daß es wie ein GUI-Programm reagiert. Hier kannst du etwas darüber nachlesen.

Noedel 14. Feb 2010 13:06

Re: Formular manuell createn
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Formular : TForm;
    Btn : TButton;
begin
    Formular:=TForm.Create(Self);
    Formular.Show;
    Btn:=TButton.Create(Formular);
    Btn.Parent:=formular;
end;
müsste das sein, was du dir vorgelstellt hast ;)

jaenicke 14. Feb 2010 13:26

Re: Formular manuell createn
 
Zitat:

Zitat von Noedel
müsste das sein, was du dir vorgelstellt hast ;)

Für ein VCL-Programm ja...
Hier geht es aber um ein Konsolenprogramm. Das ist nicht dasselbe.

daywalker9 14. Feb 2010 13:57

Re: Formular manuell createn
 
Das Fenster hängt sich naturlich in einer Konsolenanwendung auf.

Da standartmässig keine Messages verarbeitet werden, wie es bei einer VCL Anwendung der Fall ist


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