Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Fomular mit Button zur Laufzeit erstellen (https://www.delphipraxis.net/110729-fomular-mit-button-zur-laufzeit-erstellen.html)

Rifman 23. Mär 2008 16:33


Fomular mit Button zur Laufzeit erstellen
 
Hallo,
ich versuche ein Formular mit Button zur Laufzeit zu erstellen, ich bekomme aber das Form ohne Button.
Delphi-Quellcode:
unit:Form2
...
procedure TForm2.FormCreate(Sender: TObject);
 var
    button:TButton;
 begin
  button := TButton.create(self);
  button.left:=10;
  button.top:=10;
  button.width:=17;
  button.height:=17;
  button.Parent := self;
 end;
dieses Formular wird auf FormMain mit einem Button Click aufgerufen
Delphi-Quellcode:
unit:TFormMain
..
procedure TFormMain.Btn1Click(Sender: TObject);
 var:
  Form: TForm2;
 begin
   Form:= TForm2.Create(self);
   Form.show;
  end;
Was mache ich denn Falsch?

Danke.

DeddyH 23. Mär 2008 16:50

Re: Fomular mit Button zur Laufzeit erstellen
 
Wieso ist button eine lokale Variable?

Dani 23. Mär 2008 16:55

Re: Fomular mit Button zur Laufzeit erstellen
 
In diesen Codezeilen ist eigentlich nichts falsch. Setz doch mal einen Haltepunkt in TForm2.FormCreate und schau, ob der Code überhaupt ausgeführt wird. Vielleicht fällt uns was auf, wenn du mal den kompletten Quellcode hochlädst.

Rifman 23. Mär 2008 22:48

Re: Fomular mit Button zur Laufzeit erstellen
 
OK, die wichtigsten Abzüge des Kodes , was das Problem betrifft sind wie folgt:
Der Aufruf im FormMain
Delphi-Quellcode:
var
  FormMain: TFormMain;

var
   FormArray :array of TVisualizeForm;
   
implementation

procedure TFormMain.StartBtnClick(Sender: TObject);
 var
   i:integer;
 begin
    for i := 0 to MBListBox.items.Count-1 do
    begin
     FormArray[i] := TVisualizeForm.Create(owner);
     FormArray[i].show;
    end;
Das Formular zum Aufrufen
Delphi-Quellcode:

type
  TVisualizeForm = class(TForm)
  procedure FormCreate(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  VisualizeForm: TVisualizeForm;
var
  button:TButton;
implementation

{$R *.DFM}
procedure TVisualizeForm.FormCreate(Sender: TObject);

 begin
  button := TButton.create(owner);
  button.left:=10;
  button.top:=10;
  button.width:=17;
  button.height:=17;
  button.Parent := self; //VisualizeForm;
 end;
Ich bin für jeden Tip Dankbar.

mkinzler 23. Mär 2008 22:50

Re: Fomular mit Button zur Laufzeit erstellen
 
Delphi-Quellcode:
constructor TVisualizeForm.[s]Form[/s]Create(Sender: TObject);
begin
    inherited Create;
...
end;

Die Muhkuh 23. Mär 2008 22:53

Re: Fomular mit Button zur Laufzeit erstellen
 
Naja, wenn er das Create Ereigniss im OI zugewiesen und umbenannt hat, dann braucht er auch kein inherited Create ;)

mkinzler 23. Mär 2008 22:54

Re: Fomular mit Button zur Laufzeit erstellen
 
Es wird aber in seinem Fall nicht aufgerufen.

Rifman 23. Mär 2008 23:12

Re: Fomular mit Button zur Laufzeit erstellen
 
Zitat:

Zitat von mkinzler
Delphi-Quellcode:
constructor TVisualizeForm.[s]Form[/s]Create(Sender: TObject);
begin
    inherited Create;
...
end;

Erstmal Danke für deine Antwort,
Delphi-Quellcode:
constructor TVisualizeForm.FormCreate(Sender: TObject);

 begin
  inherited Create(self);

  button := TButton.create(owner);
  button.left:=10;
  button.top:=10;
  button.width:=17;
  button.height:=17;
  button.Parent := self; //VisualizeForm;
 end;
Das Problem besteht leider immer noch.

Die Muhkuh 23. Mär 2008 23:14

Re: Fomular mit Button zur Laufzeit erstellen
 
Hast Du mal einen Breakpoint in die Create-Procedure gesetzt und geschaut, ob der Debugger anhält?

Rifman 23. Mär 2008 23:23

Re: Fomular mit Button zur Laufzeit erstellen
 
Ja, habe ich eben grad , aber der Debugger hält gar nicht an.
Aber wieso denn?


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:16 Uhr.
Seite 1 von 2  1 2      

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