Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TabSheets zur Laufzeit zu einer PageControl hinzufügen (https://www.delphipraxis.net/46781-tabsheets-zur-laufzeit-zu-einer-pagecontrol-hinzufuegen.html)

messie 31. Mai 2005 15:17


TabSheets zur Laufzeit zu einer PageControl hinzufügen
 
Hallo miteinander,

ich dachte, man könnte Tabsheets auch zur Laufzeit in eine Pagecontrol einfügen. Scheint aber doch nicht zu funktionieren. Kennst jemand einen Trick, wie es doch geht? Habe in den bisherigen Themen nix dazu gefunden.

Grüße, Messie

alcaeus 31. Mai 2005 15:32

Re: TabSheets zur Laufzeit zu einer PageControl hinzufügen
 
Hallo messie,

wenn du uns nicht sagst, was du versucht hast, koennen wir nur raten. Nur als Tipp: bei mir funkt es so:
Delphi-Quellcode:
var Sheet: TTabSheet;
begin
  Sheet := TTabSheet.Create(SomePageControl);
  Sheet.Caption := 'SomeCaption';
  Sheet.PageControl := SomePageControl;
end;
so koenntest du unter Umstaenden zwar Speicherlecks kriegen, aber ich lass dich selbst nachdenken, wie du das Problem in den Griff kriegst :zwinker:

Greetz
alcaeus

Sergej 31. Mai 2005 15:33

Re: TabSheets zur Laufzeit zu einer PageControl hinzufügen
 
Also bei mit funktionierts z.B. so:

Delphi-Quellcode:


procedure TForm1.Button1Click(Sender: TObject);
var TabSheet : TTabSheet;
begin
 TabSheet := TTabsheet.Create(pagecontrol1);
 Tabsheet.PageControl := Pagecontrol1;
end;

Greetz Sergej


[edit] verdammt zu langsam... =)[/edit]

messie 31. Mai 2005 15:50

Re: TabSheets zur Laufzeit zu einer PageControl hinzufügen
 
Danke Leute,
die property PageControl fehlte, das war alles.

Leider fällt mir jetzt das Nächste auf die Füße. Die PageControl soll neu aufgebaut werden. Dazu müssen alle vorhandenen Tabsheets raus:
Delphi-Quellcode:
for i := 1 to PageControl.PageCount do
begin
  PageControl.pages[i-1].Free;
end;
Das gibt es häufig "Listenindex überschreitet..." und es werden nur einige TabSheets gelöscht :wiejetzt:

alcaeus 31. Mai 2005 15:53

Re: TabSheets zur Laufzeit zu einer PageControl hinzufügen
 
Hallo messie,

loesche die Tabsheets von "hinten nach vorne". Andernfalls versucht die Schleife auf Elemente zuzugreifen, die nicht mehr existieren:
Delphi-Quellcode:
for i := PageControl.PageCount-1 downto 0 do
  PageControl.Pages[i].Free;
Greetz
alcaeus

messie 31. Mai 2005 16:15

Re: TabSheets zur Laufzeit zu einer PageControl hinzufügen
 
Ja, logisch!

Danke, Messie


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