Einzelnen Beitrag anzeigen

torf160

Registriert seit: 20. Sep 2006
Ort: Bad Oldesloe
24 Beiträge
 
Delphi 3 Professional
 
#1

Formulare von Musterformular ableiten

  Alt 14. Jan 2010, 13:43
Hallo,

ich möchte von folgenden Formular
Delphi-Quellcode:
unit unit_Form2;

interface

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

type
  TForm2 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    ListBox1: TListBox;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;
  s : string;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
  s := edit1.Text;
  ListBox1.Items.Add(s);
  edit1.Text := '';
  edit1.SetFocus;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
  ListBox1.Items.Clear;
end;

procedure TForm2.Button3Click(Sender: TObject);
begin
  ListBox1.Items.Add(s);
end;

end.
zwei Formulare ableiten. Der Code sieht so aus:

Delphi-Quellcode:
unit unit_MyForm_1;

interface

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

type
  TForm3 = class(TForm2)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

end.
und so:
Delphi-Quellcode:
unit unit_MyForm_2;

interface

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

type
  TForm4 = class(TForm2)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form4: TForm4;

implementation

{$R *.dfm}

end.
Aus dem Hauptformular können die beiden abgeleiteten Formulare aufgerufen werden. - Das funktioniert auch.

Wenn ich das erste Formular anzeige, etwas in das Edit-Feld eintrage und den Button1 anklicke, funktioniert erstmal alles wie erwartet.
Edit1.Text wird in die ListBox übernommen und in der Variablen s gespeichert, was ich durch einen Klich auf Button3 überprüfen kann.

Wenn ich nun aber das zweite Formular anzeigen lasse, dann hat die Variable s schon den Wert aus dem ersten Formular.

Warum ist das so und wie verhindere ich das???

Schon Mal vielen Dank für Eure Mühe.

torf160
Thomas Hamdorf
  Mit Zitat antworten Zitat