AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fomular mit Button zur Laufzeit erstellen

Ein Thema von Rifman · begonnen am 23. Mär 2008 · letzter Beitrag vom 24. Mär 2008
Antwort Antwort
Seite 1 von 2  1 2      
Rifman

Registriert seit: 21. Mär 2008
Ort: Frankfurt am Main
54 Beiträge
 
Delphi 5 Standard
 
#1

Fomular mit Button zur Laufzeit erstellen

  Alt 23. Mär 2008, 17:33
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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

Re: Fomular mit Button zur Laufzeit erstellen

  Alt 23. Mär 2008, 17:50
Wieso ist button eine lokale Variable?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Fomular mit Button zur Laufzeit erstellen

  Alt 23. Mär 2008, 17:55
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.
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Rifman

Registriert seit: 21. Mär 2008
Ort: Frankfurt am Main
54 Beiträge
 
Delphi 5 Standard
 
#4

Re: Fomular mit Button zur Laufzeit erstellen

  Alt 23. Mär 2008, 23:48
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Fomular mit Button zur Laufzeit erstellen

  Alt 23. Mär 2008, 23:50
Delphi-Quellcode:
constructor TVisualizeForm.[s]Form[/s]Create(Sender: TObject);
begin
    inherited Create;
...
end;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Fomular mit Button zur Laufzeit erstellen

  Alt 23. Mär 2008, 23:53
Naja, wenn er das Create Ereigniss im OI zugewiesen und umbenannt hat, dann braucht er auch kein inherited Create
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Fomular mit Button zur Laufzeit erstellen

  Alt 23. Mär 2008, 23:54
Es wird aber in seinem Fall nicht aufgerufen.
Markus Kinzler
  Mit Zitat antworten Zitat
Rifman

Registriert seit: 21. Mär 2008
Ort: Frankfurt am Main
54 Beiträge
 
Delphi 5 Standard
 
#8

Re: Fomular mit Button zur Laufzeit erstellen

  Alt 24. Mär 2008, 00:12
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.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Fomular mit Button zur Laufzeit erstellen

  Alt 24. Mär 2008, 00:14
Hast Du mal einen Breakpoint in die Create-Procedure gesetzt und geschaut, ob der Debugger anhält?
  Mit Zitat antworten Zitat
Rifman

Registriert seit: 21. Mär 2008
Ort: Frankfurt am Main
54 Beiträge
 
Delphi 5 Standard
 
#10

Re: Fomular mit Button zur Laufzeit erstellen

  Alt 24. Mär 2008, 00:23
Ja, habe ich eben grad , aber der Debugger hält gar nicht an.
Aber wieso denn?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 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