Einzelnen Beitrag anzeigen

messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#3

Re: MDIChild variabel durch TStringList.Objects erstellen

  Alt 20. Mär 2006, 16:34
Hallo Robert,
vielleicht kannst Du Deine Forms auch in einer TObjectList verwalten:

Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, contnrs;

type
  TForms = class(TObjectList)
    function GetItem(index : integer) : TForm;
    procedure SetItem(index : integer; Form : TForm);
  public
    function add(Form : TForm) : integer;
    property Items[idx : integer] : TForm read GetItem write SetItem; default;
  end;

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  FForms : TForms;

implementation

{$R *.dfm}

function TForms.GetItem(index : integer) : TForm;
begin
  result := TForm(inherited GetItem(index));
end;

procedure TForms.SetItem(index:integer; Form : TForm);
begin
  inherited SetItem(index,Form);
end;

function TForms.add(Form : TForm) : integer;
begin
  result := inherited Add(Form);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  FForms.add(TForm1.Create(Form1));
  FForms.Items[FForms.Count-1].Caption := 'ChildForm' + IntToStr(FForms.Count);
  FForms.Items[FForms.Count-1].Left := (FForms.Items[FForms.Count-1].Left + FForms.Count*10);
  FForms.Items[FForms.Count-1].Show;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  //hier wird nur die Liste erstellt, später muß die auch wieder freigegeben werden!
  FForms := TForms.Create;
  Button2.Enabled := false;
end;
Finde ich etwas übersichtlicher als in der TStringList...

Grüße, Messie
  Mit Zitat antworten Zitat