Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Übergabe einer Variabelen von einer Form zur anderen! (https://www.delphipraxis.net/86470-uebergabe-einer-variabelen-von-einer-form-zur-anderen.html)

rainman51 14. Feb 2007 16:56


Übergabe einer Variabelen von einer Form zur anderen!
 
Ich habe eine Variable und den will den erzeugten Wert von der einen Form in die andere Form übergeben, wie mache ich das in dem die variable ihren Wert behält!

mkinzler 14. Feb 2007 17:01

Re: Übergabe einer Variabelen von einer Form zur anderen!
 
Über Methode der Form, Prozedur der Unit, Direktzugriff auf andere Variable (von Quell-Formular auf Member Zielformular oder vice versa)

Andidreas 14. Feb 2007 17:07

Re: Übergabe einer Variabelen von einer Form zur anderen!
 
wenn du in der einen form die variable als eine "globale" variable definierst, kannst du von jeder form draus zugreifen

rainman51 14. Feb 2007 17:11

Re: Übergabe einer Variabelen von einer Form zur anderen!
 
Die Variable ist golbal und lässt sich auch ohne defination verwenden..ich möchte aber den zugewiesen wert übernehmen und da ist er bei mir immer nur 0;

hoika 14. Feb 2007 17:28

Re: Übergabe einer Variabelen von einer Form zur anderen!
 
Hallo,

erzeuge eine neue Unit DataClass0.pas (z.B.)
packe dort eine Daten-Klasse rein,
die global definiert wird

Delphi-Quellcode:
unit DataClass0;

interface

type
  TDataClass = class
    public
      sName: String;
  end;

// globale Variable
var
  DataClass: TDataClass;

implementation

end;
Im FormCreate des Hauptforms wird die Klasse erzeugt,
im FormDesroy freigeben.

Delphi-Quellcode:
FormCreate;
begin
  DataClass:= TDataClass.Create;
end;

FormDestroy;
begin
  DataClass.Free;
end;
Dazu wird die unit DataClass0 per Uses (im Implementation-Teil) eingebunden

Im zweiten Form ebenfalls ein uses
und per DataClass.sName kann zugegriffen werden.


Das mit der globalen Variable ist einfach,
man kann das auch per Parameter machen.

Wichtig
In den Forms wird keine Variable TDataClass definiert.

Die Klasse hat auch noch den Vorteil, dass durch Nutzung richtiger prroperties
(Get Set Methoden)
schön festgestellt werden, wer wann wo was ändert.

Heiko

Seniorenzivi 14. Feb 2007 18:28

Re: Übergabe einer Variabelen von einer Form zur anderen!
 
Hi Mirko...

am einfachsten geht es in dem du die beiden Units miteinander verbindest. Du gehst einfach auf Datei-> Unit verwenden und wählst die zur verwendende Unit aus. Genau das selbe musst du dann bei der anderen Unit machen. Jetzt kannst du ganz einfach auf die Variablen der anderen Form zugreifen.

Und zwar so:
Delphi-Quellcode:
Unit<name>.<Variablenname>

DP-Maintenance 14. Feb 2007 19:09

DP-Maintenance
 
Dieses Thema wurde von "Christian Seehase" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Delphi-Frage

Andidreas 15. Feb 2007 10:58

Re: Übergabe einer Variabelen von einer Form zur anderen!
 
hier hast du mal ein bsp. wie ichs in meinem beitrag gemeint hab:

also hier die eine form in der du die werte in einer variablen speicherst:

Delphi-Quellcode:
unit Project1_main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls, JvExControls, JvComponent, JvXPCore,
  JvXPButtons;

type
  TMain_Form = class(TForm)
    xpbtn_exit: TJvXPButton;
    procedure xpbtn_exitClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Main_Form: TMain_Form;

  glblLogin : Boolean;  //hier die globalen variablen
  glsUser  : String;   //hier nochmal eine ;)
 
implementation

uses
  Enigma_Login;

{$R *.dfm}
und hier eine andere form von der du z.b. auf die variable glsUser zugreifst

Delphi-Quellcode:
    Project1_main.glsUser := 'User1'; // Wert in Variable schreiben
    Variable1 := Project1_main.glsUser // Wert in einer Variablen der 2. Form speichern
ich hoffe dir ises jetzt bisl klarer wie mein beitrag zu verstehen war...


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:17 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 by Thomas Breitkreuz