Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Zugriff auf Variable anderer Unit

  Alt 23. Nov 2007, 07:53
Hai Christopfaa,

ersteinmal: Herzlich Willkommen in der Delphi-PRAXiS

Ich würde es grundsätzlich vermeiden direckt auf die Variablen einer anderen Unit zugreifen zu müssen.
Gönne deiner Form2 lieber ein Property und setze dieses vor dem zeigen der Form. z.B. so:

Delphi-Quellcode:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Label1: TLabel;
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
    fWert: Integer;
  public
    { Public-Deklarationen }
    property bWert: Integer read fWert write fWert;
  end;


implementation

{$R *.dfm}

procedure TForm2.FormShow(Sender: TObject);
begin
  Label1.Caption := Format('bWert ist = %d', [fWert]);
  fWert := 7;
end;

end.
Delphi-Quellcode:
unit U_Main;

interface

uses
  Windows, Messages, Classes, Graphics, Controls, Forms, StdCtrls, ComCtrls,
  ExtCtrls, Dialogs;

type
  TDemo_Form = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    aWert: Integer;
  public
    { Public-Deklarationen }
  end;

var
  Demo_Form: TDemo_Form;

implementation

uses Unit2;

{$R *.dfm}

procedure TDemo_Form.Button1Click(Sender: TObject);
var
  Form2: TForm2;
begin
  aWert := 5;
  Form2 := TForm2.Create(self);
  try
    Form2.bWert := aWert;
    Form2.ShowModal;
    aWert := Form2.bWert;
    ShowMessageFmt('Jetzt ist aWert = %d', [aWert]);
  finally
    Form2.Free;
  end;
end;

end.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat