![]() |
Daten an zu Laufzeit erzeugte Form übergeben.
Hi Delphianers
Ich erzeuge zur Laufzeit meises Programmes mehrere Form's in der es eine Textbox hat mit folgendem Code.
Delphi-Quellcode:
Nun möchte ich irgendwas in eine Textbox schreiben von einer dieser erzeugten Form's.
procedure TForm1.BitBtn1Click(Sender: TObject);
var MyForm: TForm2; begin MyForm := TForm2.Create(nil); MyForm.Show; MyForm.Caption := inttostr(MyForm.Handle); end; Wie muss ich da vorgenhen. Ich hab gesehen das Jede Form ja ne eigene Handle hat muss ich irgendwas damit machen? Grüsse Tom |
AW: Daten an zu Laufzeit erzeugte Form übergeben.
Delphi-Quellcode:
MyForm.Edit1.Text := 'Moin';
|
AW: Daten an zu Laufzeit erzeugte Form übergeben.
mit BTNCLick erzeuche ich ja immer eine form und wenn ich den jetzt 5x gedrückt habe dann habe ich ja 5 Form's
und ich möchte ja dann in die EditBox von einer beliebigen Form der 5 Form's was schreiben. ich dachte mir man könne das irgendwie so...
Delphi-Quellcode:
lösen.Myform(das Handle der Form).editbox.text |
AW: Daten an zu Laufzeit erzeugte Form übergeben.
Moin...:P
Du merkst dir die erzeugten Forminstanzen in einer generischen Objektliste z.B. Dann kannst du auf jede Form zugreifen und Werte in die Controls schreiben. Besser wäre aber du übergibst die Werte an Properties der Form und die Form entscheidet selbst was sie mit den Daten anfängt. :thumb: Ein Beispiel wäre dafür 2 Formen die die gleichen Properties haben, aber völlig unterschiedlich diese Daten darstellen. Deiner Funktion, die die Daten übergibt, ist es völlig wurscht wie die Daten dargestellt werden und muß die Controls nicht kennen. 8-) |
AW: Daten an zu Laufzeit erzeugte Form übergeben.
Hab das nun so gelöst :)
Delphi-Quellcode:
unit Unit1;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, Vcl.ComCtrls, Unit2; type TForm1 = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; ListView1: TListView; procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; MyForm: TForm2; implementation {$R *.dfm} function FindForm(H: THandle): TForm; var i: integer; begin Result := nil; for i := 0 to Screen.FormCount -1 do begin if Screen.Forms[i].Handle = H then Result := Screen.Forms[i]; end; end; procedure TForm1.BitBtn1Click(Sender: TObject); var Li: TListItem; begin MyForm := TForm2.Create(nil); MyForm.Caption := inttostr(MyForm.Handle); Li := Form1.ListView1.Items.Add; Li.Caption := inttostr(MyForm.Handle); MyForm.Show; end; procedure TForm1.BitBtn2Click(Sender: TObject); begin myform := TForm2(FindForm(strtoint(listview1.Selected.Caption))); myform.Label1.Caption := 'Hallo Welt'; end; end. |
AW: Daten an zu Laufzeit erzeugte Form übergeben.
Wieder ein Chat?
Delphi-Quellcode:
dann schreiben
For i:=0 to 10 do
begin MyForms[i] := TMyForm.Create(Application); MyForms[i].Show; end;
Delphi-Quellcode:
Fertig! So?
For i:=0 to 10 do
MyForms[i].TextAnzeige := 'Hallo Zusammen'; Mavarik |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 Uhr. |
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-2025 by Thomas Breitkreuz