Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Pagecontrol - neue Seite, neues Element (https://www.delphipraxis.net/156312-pagecontrol-neue-seite-neues-element.html)

Carzoo 27. Nov 2010 16:03

Pagecontrol - neue Seite, neues Element
 
Hallöchen,

Ich hab folgendes geplant:

Editfeld --> Zahl wird eingegeben
Button --> Klick
entsprechend der eingegebenenzahl werden Sheets im Pagecontrol erstellt.

Soweit klappt das auch.

ich würde jetzt gern auf jedem neu erstellten Sheet noch zwei Elemente einfügen:

pro Seite eine Combobox und eine StringGrid.
Ich weiß nur nicht, was ich als AOwner angeben muss.

Kann ich das in der selben Schleife laufen lassen?
Oder lieber eine zweite Schleife?

Hier mal der bisherige Code(nur die Seitenerstellung):

Code:
procedure TForm1.Button1Click(Sender: TObject);
var newSheet:TTabSheet;
i:Integer;
SZ:Integer; //SZ = Seitenzahl
begin

SZ:=StrToInt(EditSZ.Text);   //Seitenzahl wird ausgelesen
  for i:=1 to FZ do
  begin
    PageControlGeom.visible:=true;
    NewSheet:=TTabSheet.Create(PageControlGeom);
    newSheet.PageControl:=PageControlGeom;
    newSheet.Caption:='Seite '+IntToStr(i);

    end;
  end;

end.

Bummi 27. Nov 2010 16:17

AW: Pagecontrol - neue Seite, neues Element
 
Am einfachsten Owner und Parent innerhalb der Schleife auf Newsheet setzen.

Ghostleader 27. Nov 2010 22:42

AW: Pagecontrol - neue Seite, neues Element
 
Mit welchem Befehl erstellt man denn eine neue Komponente auf dem jeweililgen Sheet?
NewSheet.Create()
?

Bummi 27. Nov 2010 22:54

AW: Pagecontrol - neue Seite, neues Element
 
Exemplarisch
Delphi-Quellcode:
procedure TForm1.CreateElements(Aparent:TWinControl;i:Integer);
begin
  With TCombobox.Create(self) do
    begin
    Parent := Aparent;
    left := 10;
    top := 10;
    Name := 'CB' + IntToStr(i);
    end;
  With TStringGrid.Create(self) do
    begin
    Parent := Aparent;
    left := 10;
    top := 30;
    Name := 'SG' + IntToStr(i);
    Width := Aparent.Width - 20;
    Height := Aparent.Height - 50;
    end;

end;

procedure TForm1.Button1Click(Sender: TObject);
var newSheet:TTabSheet;
i:Integer;
SZ:Integer; //SZ = Seitenzahl
begin

SZ:=StrToInt(EditSZ.Text);  //Seitenzahl wird ausgelesen
  for i:=1 to SZ do
  begin
    PageControlGeom.visible:=true;
    NewSheet:=TTabSheet.Create(PageControlGeom);
    newSheet.PageControl:=PageControlGeom;
    newSheet.Caption:='Seite '+IntToStr(i);
    CreateElements(newSheet,i);
    end;
  end;

Ghostleader 27. Nov 2010 23:12

AW: Pagecontrol - neue Seite, neues Element
 
Danke, funktioniert...

Carzoo 28. Nov 2010 13:53

AW: Pagecontrol - neue Seite, neues Element
 
Vielen Dank!


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