AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Daten an zu Laufzeit erzeugte Form übergeben.
Thema durchsuchen
Ansicht
Themen-Optionen

Daten an zu Laufzeit erzeugte Form übergeben.

Ein Thema von codenoob · begonnen am 14. Jan 2016 · letzter Beitrag vom 15. Jan 2016
Antwort Antwort
codenoob
(Gast)

n/a Beiträge
 
#1

Daten an zu Laufzeit erzeugte Form übergeben.

  Alt 14. Jan 2016, 18:56
Hi Delphianers

Ich erzeuge zur Laufzeit meises Programmes mehrere Form's in der es eine Textbox hat mit folgendem Code.
Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  MyForm: TForm2;
begin
  MyForm := TForm2.Create(nil);
  MyForm.Show;
  MyForm.Caption := inttostr(MyForm.Handle);
end;
Nun möchte ich irgendwas in eine Textbox schreiben von einer dieser erzeugten Form's.
Wie muss ich da vorgenhen. Ich hab gesehen das Jede Form ja ne eigene Handle hat muss ich irgendwas damit machen?


Grüsse Tom
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Daten an zu Laufzeit erzeugte Form übergeben.

  Alt 14. Jan 2016, 19:06
MyForm.Edit1.Text := 'Moin';
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
codenoob
(Gast)

n/a Beiträge
 
#3

AW: Daten an zu Laufzeit erzeugte Form übergeben.

  Alt 14. Jan 2016, 19:18
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:

Myform(das Handle der Form).editbox.text
lösen.

Geändert von codenoob (14. Jan 2016 um 19:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#4

AW: Daten an zu Laufzeit erzeugte Form übergeben.

  Alt 14. Jan 2016, 19:36
Moin...

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. 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.
  Mit Zitat antworten Zitat
codenoob
(Gast)

n/a Beiträge
 
#5

AW: Daten an zu Laufzeit erzeugte Form übergeben.

  Alt 15. Jan 2016, 12:18
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.

Geändert von codenoob (15. Jan 2016 um 12:23 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Daten an zu Laufzeit erzeugte Form übergeben.

  Alt 15. Jan 2016, 13:16
Wieder ein Chat?

Delphi-Quellcode:
For i:=0 to 10 do
  begin
    MyForms[i] := TMyForm.Create(Application);
    MyForms[i].Show;
  end;
dann schreiben

Delphi-Quellcode:
For i:=0 to 10 do
  MyForms[i].TextAnzeige := 'Hallo Zusammen';
Fertig! So?

Mavarik
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:23 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