Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Werte an andere Form übergeben (https://www.delphipraxis.net/16736-werte-andere-form-uebergeben.html)

Snooze 22. Feb 2004 16:58


Werte an andere Form übergeben
 
Hallo,

eine Frage:

wie kann ich Werte eines Edit-Feldes (z. Bsp.: Text) einer anderen Form übergeben?

Danke für Hilfe


MFG Stefan

Die Muhkuh 22. Feb 2004 17:00

Re: Werte an andere Form übergeben
 
Such mal danach. Ich glaube das wurde shcon ein paar mal beantwortet

Matze 22. Feb 2004 17:01

Re: Werte an andere Form übergeben
 
Einfach in Form1 ne String-Variable global deklarieren, und der den edit Text zuweisen.
Im Unit2 einfach Unit1 einbinden und dann kannst du die String-Variable ganz normal ansprechen.

Snooze 22. Feb 2004 17:02

Re: Werte an andere Form übergeben
 
das habe ich mir beinahe schon gedacht, mit dieser Global-Stelle.

Aber was verstehst du unter Einbinden?

wie mache ich das?

Matze 22. Feb 2004 17:03

Re: Werte an andere Form übergeben
 
Delphi-Quellcode:
implementation

Uses Unit1

Die Muhkuh 22. Feb 2004 17:04

Re: Werte an andere Form übergeben
 
so:

Delphi-Quellcode:

implementation

uses Unit1;

Plague 22. Feb 2004 17:04

Re: Werte an andere Form übergeben
 
Ganz einfach:

Delphi-Quellcode:
a:string;

begin
a := Form1.Edit1.Text;
Form2.Edit1.Text := a;
end;
Oder meinst Du was anderes???

Snooze 22. Feb 2004 17:07

Re: Werte an andere Form übergeben
 
Zitat:

Zitat von Matze
Delphi-Quellcode:
implementation

Uses Unit1


hm das funktioniert aber trotzdem nicht.

Das hatte ich vorher auch schon mal.

nur wenn ich die Variable in Form2 unter Public... definiere

dann beim Verlassen der Seite einen bestimmten Wert zuteile (was bis hierher auch funzen dürfte) und dann die Variable in Form3 aufurfe, sagt er, dass diese Variable nicht bekannt ist.

Schreibfehler und Form-Verwechslungen schließe ich dabei zu 100% aus :(

Plague 22. Feb 2004 17:08

Re: Werte an andere Form übergeben
 
@ Spider

Also ich nutze Delphi 7 und bei mir wird die Implemention von Unit1 automatisch übernommen...

MfG
Thomas

Matze 22. Feb 2004 17:09

Re: Werte an andere Form übergeben
 
Du kannst die variable auch in Form1 unter Public deklarieren, in Form2 dann:
Delphi-Quellcode:
Form1.Variable := ...
wenn du dann kompilierst, wird Form1 in Form2 eingetragen, automatisch, wie Spider gesagt hat.

Snooze 22. Feb 2004 17:09

Re: Werte an andere Form übergeben
 
Zitat:

Zitat von Plague
@ Spider

Also ich nutze Delphi 7 und bei mir wird die Implemention von Unit1 automatisch übernommen...

MfG
Thomas


genau, wenn man einmal zugreift auf eine formx.dkdkdk dann fragt er ja

aber trotzdem klappts nicht

Manzoni 22. Feb 2004 17:15

Re: Werte an andere Form übergeben
 
hi,

globale Variablen sind für mich ein altes Pascal Relikt. In Objekt-Pascal sollte man besser objektorientierte Strukturen verwenden.
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
    variable : String;
  public
    { Public-Deklarationen }
    function _variable : string;
  end;

var
  Form1: TForm1;

implementation
{$R *.dfm}
function TForm1._variable : string;
begin
  result:=variable;
end;

end.
Die andere Unit:
Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm2 = class(TForm)
    Label1: TLabel;
  private
    { Private-Deklarationen }
    procedure beispiel;
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}
procedure TForm2.beispiel;
begin
  Label1.Caption:=Form1._variable;
end;

end.
Auf den ersten Blick etwas umständlicher, aber wie ich finde auf jedenfall strukturierter.

Matze 22. Feb 2004 17:15

Re: Werte an andere Form übergeben
 
Also, so sieht's bei mir aus und geht einwandfrei:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

Uses Unit2;

{$R *.dfm}

end.
Edit: Zu langsam ;)

Sharky 22. Feb 2004 17:17

Re: Werte an andere Form übergeben
 
Zitat:

Zitat von Snooze
...wie kann ich Werte eines Edit-Feldes (z. Bsp.: Text) einer anderen Form übergeben?...

Hai Snooze,

ich würde dafür in deiner zweiten Form im Public-Teil eine Procedure deklarieren.

Delphi-Quellcode:
type
  TForm2 = class(TForm)
  private
    { Private-Deklarationen }
    s_editform1 : String;
  public
    { Public-Deklarationen }
    procedure SetEdit (const value : String = '');
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.SetEdit (const value : String = '');
begin
  s_editform1 := value;
end;
Wenn deinen Unit von Form2 jetzt in der Uses deiner ersten steht kannst Du den Text einfach übergeben:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.SetEdit(Edit1.Text);
end;
[Edit]Manzoni scheint fast so zu coden wie ich *gg*. Nur das ich es genau anderes herum gemacht habe. [/edit]

Snooze 22. Feb 2004 17:20

Re: Werte an andere Form übergeben
 
Zitat:

Zitat von Matze
Also, so sieht's bei mir aus und geht einwandfrei:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

Uses Unit2;

{$R *.dfm}

end.
Edit: Zu langsam ;)


so habe ich es auch und es geht nicht :)

normalerweise sollte es ja gehen,,,

aber warum es nicht geht gibt mir zu rätseln

das andere werde ich halt sonst verwenden müssen, obwohl mir das sehr aufwendig erscheint, schließlich musse ich ca. 20-30 Werte übergeben :?

Snooze 22. Feb 2004 17:23

Re: Werte an andere Form übergeben
 
noch ein kleiner Anhang:

ich entlade die Form2 nicht einmal sondern mache sie nur unsichtbar.

wenn ich dann direkt auf das Edit-Feld zugreife kriege ich den wert ''

warum:

ich habe dem Edit-Feld als Standard-Text nichts angegeben.

aber jetzt fülle ich das Feld zur Laufzeit aus, nur will er trotzdem dann den Standardwert zurückgeben


dürfte vielleicht weiterhelfen

Snooze 22. Feb 2004 18:13

Re: Werte an andere Form übergeben
 
hm habe mal auch das mit der Prozedur probiert, nur erwartet er da irgendein Resultat

aber das andere will einfach nicht gehen :(

Matze 22. Feb 2004 18:22

Re: Werte an andere Form übergeben
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab mal so'n Beispiel im Anhang, falls du's fehlerfrei kompilieren kannst, dann musst du bei dir einen anderen Fehler haben.

Manzoni 22. Feb 2004 18:34

Re: Werte an andere Form übergeben
 
poste doch mal dein Quellcode. :dp:

Snooze 22. Feb 2004 18:39

Re: Werte an andere Form übergeben
 
ich glaube langsam flippe ich komplett aus.

habe es jetzt wirklich genau so gemacht, aber wieder ohne erfolg

Matze 22. Feb 2004 18:39

Re: Werte an andere Form übergeben
 
Lässt sich mein Programm denn kompilieren?

Snooze 22. Feb 2004 18:43

Re: Werte an andere Form übergeben
 
Liste der Anhänge anzeigen (Anzahl: 2)
hm ok habe mal die Form2 und Form3 angehängt

bitte nicht über meine umständliche Code-Vorgänge, aber mir geht es vor allem darum, dass es funzt.


danke jedem, der sich da durch wurstelt :-D

Snooze 22. Feb 2004 18:44

Re: Werte an andere Form übergeben
 
Zitat:

Zitat von Matze
Lässt sich mein Programm denn kompilieren?


ja dein Problem klappt einwandfrei, dass ist ja auch das, was ich nicht verstehen kann

Matze 22. Feb 2004 18:46

Re: Werte an andere Form übergeben
 
Hi Stefan!

Kannst du mir bitte sagen, wo genau der Fehler kommt, so auf die Schnelle seh ich keinen... :angle2:


PS: Der Timer1-Code sieht ja heiß aus ;)

Snooze 22. Feb 2004 18:48

Re: Werte an andere Form übergeben
 
Zitat:

Zitat von Matze
Hi Stefan!

Kannst du mir bitte sagen, wo genau der Fehler kommt, so auf die Schnelle seh ich keinen... :angle2:


PS: Der Timer1-Code sieht ja heiß aus ;)


ich habe gesagt, bitte keine Anspielungen :-D

also in der procedure TForm2.Button2Click

teile ich der Variable S den Wert eines Edit-Feldes zu und springe dann, wenn es wirklich soweit ist, auf Form3 über und da dürftest du dich gleich recht finden, ist noch ziemlich spährlich

Matze 22. Feb 2004 18:51

Re: Werte an andere Form übergeben
 
Im OnCreate der Form3 kannst du, meiner Meinung nach, nicht schreiben:

Delphi-Quellcode:
label2.Caption:= s;
Sie wird nämlich nur beim Programmstart GeCreated (oder wie das heißt ;) ).

Danach wird sie höchstens aktiviert, probier da mal, das ins OnActivate zu schreiben.

Snooze 22. Feb 2004 18:54

Re: Werte an andere Form übergeben
 
hm dann geht es gar nicht mehr, also dann bleibt überhaupst Standard-Wert drinne

sonst geht der wenigstens weg

auch im OnShow klappts nicht :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 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