Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Tabsheet dynamisch erzeugen (https://www.delphipraxis.net/128844-tabsheet-dynamisch-erzeugen.html)

5etH 7. Feb 2009 12:23


Tabsheet dynamisch erzeugen
 
Hallo Zusammen,

für mein aktuelles Programm möchte ich gerne Tabsheets erzeugen die ich aus einer DB entnehme, also können es beliebig viele sein.
Ich würde diese Sheets gerne nach einer Vorlage bauen (tabsheet2).

Meine Frage:
Wie kann ich dieses Tabsheet2 nun "kopieren"

ich hatte mir auch schonwas gebastelt, aber das funktioniert garnicht.

Delphi-Quellcode:
      newsheet := Ttabsheet.Create(Form1);
      with newsheet do
      begin
        Parent := pagecontrol1;
        Tag   := i;
        Name  := 'newsheet' + IntToStr(i);
        Caption:= 'newsheet' + IntToStr(i);

      end;
Ich hoffe das ihr mir weiter helfen könnt

lg Manu

khh 7. Feb 2009 12:28

Re: Tabsheet dynamisch erzeugen
 
lege die Erstellung der sheets in eine Schleife.

Gruss KH

mkinzler 7. Feb 2009 12:29

Re: Tabsheet dynamisch erzeugen
 
Leite eine eigene Klasse ab, von welcher du dann ableiten kannst.

5etH 7. Feb 2009 12:30

Re: Tabsheet dynamisch erzeugen
 
1. ist in einer for-Schleife mit i

2. watt ? Bahnhof?

mkinzler 7. Feb 2009 12:33

Re: Tabsheet dynamisch erzeugen
 
Zitat:

2. watt ? Bahnhof?
OOP ein Buch mit 1000 Siegeln? :gruebel:

khh 7. Feb 2009 12:35

Re: Tabsheet dynamisch erzeugen
 
zeig mal die schleife

5etH 7. Feb 2009 12:35

Re: Tabsheet dynamisch erzeugen
 
mehr als 1000 ^^, da war auch mein Lehrer an mir gescheitert aber mit java

Delphi-Quellcode:
for I := 0 to 5 do
begin
if stringgrid1.Cells[0,i] <> ' ' then
  begin
      newsheet := Ttabsheet.Create(pagecontrol1);
      with newsheet do
      begin
        Parent := pagecontrol1;
        Tag   := i;
        Name  := 'newsheet' + IntToStr(i);
        Caption:= 'newsheet' + IntToStr(i);

    end;

  end;

end;

mkinzler 7. Feb 2009 12:36

Re: Tabsheet dynamisch erzeugen
 
Nur gut das die VCL streng objektorientiert ist

_frank_ 7. Feb 2009 12:38

Re: Tabsheet dynamisch erzeugen
 
mkinzlers antwort war auf deine Anforderung mit der Vorlage (Tabsheet2) bezogen :)

erstelle dir eine eigene Klasse, abgeleitet von TTabsheet, welche schon so ausieht wie Tabsheet2, diese kannst du als Grundlage für deine dynamisch erzeugten Tabsheets nehmen (TMyTabsheet.create statt TTabsheet.Create).

mal als grobes Konstrukt:

Delphi-Quellcode:
TMyTabsheet = class(TTabsheet)
  ...
public
  constructor create(owner:TComponent);
  destructor destroy;
end;
m contructor dann deine ganzen Controls erzeugen und positionieren, im destructor alles wieder freigeben.

HTH Frank


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