Einzelnen Beitrag anzeigen

Master_BB

Registriert seit: 17. Mai 2003
285 Beiträge
 
Delphi 7 Professional
 
#2

Re: Dynamischen Wizard realisieren

  Alt 22. Apr 2005, 08:36
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.
  Mit Zitat antworten Zitat