also das mit den TahSheets ist recht einfach das habe ich bei einem meiner Projekte auch gemacht.
am besten du legst dir dafür 2 Objekte an eine TabSheetList und ein TabSheetItem.
Beim TabSheetItem machst du ne Tabsheet property und alles zeug was das
tabsheet halt so haben soll, buttons, listviews usw.
bei der tabsheetlist gibst du beim erstellen die pagecontrol mit die du dort auch als
property speicherst die brauchst du dann. dann nimmst dir ne routine namens createtabsheets
und läßt dann von der tabsheetlist welche von TObjectList oder ähnlichem abgeleitet ist
die tabsheetitems erstellen und in die liste eintragen.
aus einem meiner projekte kann cih dir ja mal den code der tabsheetliste beim erstellen geben.
Delphi-Quellcode:
for SectionIndex := 0 to Pred(AVideoListenSections.Count) do
begin
ANewCreated := False;
ATabSheetIndex := TabExists(AVideoListenIniFile.ReadString(AVideoListenSections[SectionIndex], 'Name', ''));
if (ATabSheetIndex = -1) then
begin
ATabSheet := TTabSheet.Create(FPageControl);
AListView := TListView.Create(ATabSheet);
ATabSheetObjectItem := TTabSheetObjectItem.Create(AListView, ATabSheet);
ANewCreated := True;
end
else //TabSheet Existiert bereits
ATabSheetObjectItem := TTabSheetObjectItem(Items[ATabSheetIndex]);
ATabSheetObjectItem.LoadFromIniFile(BuildFileName(AApplicationPath, ConstU.VideoListenFileName),
AVideoListenSections[SectionIndex]);
with ATabSheetObjectItem do
begin
AIniFile := TIniFile.Create(BuildFileName(MainForm.ApplicationPath, ConstU.MM3SettingsFile));
try
if Visible then
begin
TabSheet.PageControl := FPageControl;
TabSheet.Caption := Name;
TabSheet.ImageIndex := IconIndex;
ListView.Parent := TabSheet;
ListView.Align := alClient;
ListView.Color := BackgroundColor;
ListView.FlatScrollBars := AIniFile.ReadBool('Allgemein', 'FlatScrollBars', False);
ListView.Font.Color := LettersColor;
ListView.GridLines := ShowGrids;
ListView.HideSelection := False;
ListView.MultiSelect := True;
ListView.PopupMenu := MainForm.OptionsPopupMenu;
ListView.ReadOnly := True;
ListView.RowSelect := True;
ListView.ShowColumnHeaders := ShowHead;
ListView.OnColumnClick := ListViewOnColumnClick;
MakeListViewHeader;
end;
ja das ist von meinem MovieManager projekt an dem ich schon seit einiger zeit arbeite, da hat man dynamisch viele tabsheets mit listen. drum wird hier auf dem tabsheet auch nur sichtbar die listview erstellt.
vorher wird oben noch einwenig abgefragt ob das zeug schon in der pagecontrol ist und nur aktualisiert werden muss usw.
kann man ja gut lesen.
ich hoffe ich konnte in dem punkt ein wenig helfen
Wenn das Meer unruhig ist und der Wind die Wellen treibt, erfreut es, vom Strand aus die Mühen eines Anderen zu beobachten.