Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi in Laufzeit Objakt hinzufügen (https://www.delphipraxis.net/14226-laufzeit-objakt-hinzufuegen.html)

Remote1 5. Jan 2004 09:23


in Laufzeit Objakt hinzufügen
 
wie kann man während der laufzeit ein objekt in die form hinzufügen?

Remote1 6. Jan 2004 07:23

Re: in Laufzeit Objakt hinzufügen
 
keiner ne idee wie ich ein edit feld oder eine checkbox einfügen kann (kann ja auch bei oncreate geschehen)

Leuselator 6. Jan 2004 07:27

Re: in Laufzeit Objakt hinzufügen
 
z.B. mit:
Delphi-Quellcode:
Var MeinEdit : TEdit;

procedure TForm1.FormCreate(Sender: TObject);
begin
  MeinEdit := TEdit.Create(TForm1);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  MeinEditFreeAndNil(MeinEdit);
end;

Remote1 6. Jan 2004 07:29

Re: in Laufzeit Objakt hinzufügen
 
könnt das so gehn:
Delphi-Quellcode:
var MyButton: TButton;
begin
  MyButton := TButton.Create(Form1);
  with MyButton do begin
    Parent := Form1;
    Height := 32;
    Width := 128;
    Caption := 'Neuer Button';
    Left := 50;
    Top := 50;
    OnClick:=ButtonXClick;
  end;
end;

Leuselator 6. Jan 2004 08:34

Re: in Laufzeit Objakt hinzufügen
 
wenn Du vorher irgendwo in dieser Unit
Delphi-Quellcode:
procedure TForm1.ButonXClick(Sender:TObject)
deklariert hast sollte das so gehen...

Jens Schumann 6. Jan 2004 08:38

Re: in Laufzeit Objakt hinzufügen
 
Zitat:

Zitat von Leuselator
z.B. mit:
Delphi-Quellcode:
Var MeinEdit : TEdit;

procedure TForm1.FormCreate(Sender: TObject);
begin
  MeinEdit := TEdit.Create(TForm1);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  MeinEditFreeAndNil(MeinEdit);
end;

Ein Freigeben von MeinEdit ist hier nicht notwendig.
Durch den Paramter Form1 in MeinEdit := TEdit.Create(Form1); wird das Formular zum Besitzer
des Objektes/Komponente. In diesem Fall kümmert sich das Formular um die Freigabe.

Leuselator 6. Jan 2004 08:46

Re: in Laufzeit Objakt hinzufügen
 
Recht hast Du Jens, aber unser (Delphi-)junger Freund hier scheint mir auf dem besten Wege, selbst dynamisch Controls in eigenen Routinen/Komponenten zu erzeugen und dort spätestens tauchen die ersten Schutzverletzungen oder Speicherleaks auf. Daher @Remote1: Wenn der Owner mal kein Form, sondern eine Komponente von Dir sein sollte, dann immer im OnDestroy daran denken, die dynamisch erzeugten Objecte wieder freizugeben. :zwinker:

Remote1 8. Jan 2004 09:10

Re: in Laufzeit Objakt hinzufügen
 
ich hab jetz eigentlich nur noch ein paar kleine probleme:
und zwar ist das allen ziemlich langwierig (muss ne menge obj erstellen und das dauert)
kann man das nicht irgendwie verschnellern bzw die obj verankern (werden bei mir auf registrierkarte erstellt und bei einem change sind die ja dann wieder weg --> deshalb hab ich bei onchange das ganze drin, damit die halt wieder erstellt werden)

Leuselator 8. Jan 2004 09:14

Re: in Laufzeit Objakt hinzufügen
 
¿?
(zeig mal 'n bischen Code...)

Remote1 8. Jan 2004 09:22

Re: in Laufzeit Objakt hinzufügen
 
Delphi-Quellcode:
procedure cedit(ort:tcomponent; par:twincontrol; jahr:string; x,y:integer);
var MyEdit: TEdit;
begin
  MyEdit := TEdit.Create(ort);
  with MyEdit do begin
    Parent := par;
    Height := 21;
    Width := 33;
    Text := jahr;
    Left := x;
    Top := y;
  end;
end;
und das dann bei onchange (bzw extra procedure

Delphi-Quellcode:
 for i:=1 to 5 do
  cedit(Form2.PageControl1, Form2.PageControl1, inttostr(1872+i), 16,32+32*i);
 for i:=1 to 34 do
  cedit(Form2.PageControl1, Form2.PageControl1, inttostr(1884+i), 16,160+32*i);
aber nach dem erstellen will ich alle edit felder auch wieder auslesen und ich hab keine ahnung wie ich die ansprechen soll (edit1 geht ja wohl nicht)

ach ja, das alles soll ne art datenbank werden
ich les halt aus einer ini datensätze aus und dementsprechend werden dann die obj erstellt


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:27 Uhr.
Seite 1 von 2  1 2      

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