Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TabControl (https://www.delphipraxis.net/5872-tabcontrol.html)

MiKaEr 31. Jan 2012 13:30

AW: TabControl
 
ich hänge gerade am selben problem.

ich habe ein pagecontrol und diesem verpasse ich per klick neue tabs MIT listview drauf:
Delphi-Quellcode:
procedure TForm1.NeueProfilgruppe1Click(Sender: TObject);
var
 aListView: TListView;
 aTabSheet: TTabSheet;
 aItem: TListItem;
begin
   sGroupName := 'test';

   aTabSheet := TTabSheet.Create(Self);
   aTabSheet.PageControl := PageControl1;
   aTabSheet.Parent := PageControl1;
   aTabSheet.Caption := sGroupName;
   PageControl1.ActivePage := aTabSheet;

   aListView := TListView.Create(Self);
   aListView.Parent := aTabSheet;
   aListView.Align := lv1.Align;
   aListView.Name := 'lv' + IntToStr(PageControl1.PageCount);
   aListView.BorderWidth := lv1.BorderWidth;
   aListView.LargeImages := lv1.LargeImages;
   aListView.SmallImages := lv1.SmallImages;

   aItem := aListView.Items.Add;
   aItem.Caption := sGroupName;

// lv1 ist eine ListView
end;
das funktioniert alles. aber folgendes nicht mehr:
Delphi-Quellcode:
// aCurrentListView := TListView;
procedure TForm1.PageControl1Change(Sender: TObject);
begin
 aCurrentListView := PageControl1.ActivePage.FindComponent('lv' + IntToStr(PageControl1.ActivePageIndex + 1)) as TListView;

 if Assigned(aCurrentListView) then
  showmessage(aCurrentListView.Name); // hier kommt er NIE hin
end;
dementsprechend fällen alle operationen die mit aCurrentListView zu tun haben fehl.

DeddyH 31. Jan 2012 13:34

AW: TabControl
 
Und mit FindControl statt FindComponent?

Sir Rufo 31. Jan 2012 13:47

AW: TabControl
 
Hmmm, warum will eigentlich jeder alles in so ein PageControl reinpacken?

Das kann man sehr geschickt trennen, indem man eine Form mit einem PageControl nimmt und dort die Funktionalität für das PageControl implementiert.

Die ListView kommt in ein eigenes Formular und bei Bedarf wird diese Form erzeugt und an das PageControl gedockt.

Ein Beispiel findest du hier

uligerhardt 31. Jan 2012 13:53

AW: TabControl
 
Zitat:

Zitat von Sir Rufo (Beitrag 1148527)
Das kann man sehr geschickt trennen, indem man eine Form mit einem PageControl nimmt und dort die Funktionalität für das PageControl implementiert.

Die ListView kommt in ein eigenes Formular und bei Bedarf wird diese Form erzeugt und an das PageControl gedockt.

Oder gleich einen Frame.

MiKaEr 31. Jan 2012 14:12

AW: TabControl
 
das war ein toller tipp.

einfach im OnChange-Event des pagecontrols folgendes setzen und schon braucht man nur eine listview:
Delphi-Quellcode:
ListView1.Parent := PageControl1.ActivePage;
es ist ja EH immer nur eine listview sichtbar, wozu also dutzende "erstellen".

Sir Rufo 31. Jan 2012 14:14

AW: TabControl
 
Zitat:

Zitat von MiKaEr (Beitrag 1148530)
das war ein toller tipp.

einfach im OnChange-Event des pagecontrols folgendes setzen und schon braucht man nur eine listview:
Delphi-Quellcode:
ListView1.Parent := PageControl1.ActivePage;
es ist ja EH immer nur eine listview sichtbar, wozu also dutzende "erstellen".

Ja, so was geht ... aber ob es dir wirklich hilft ... aber du machst das schon :)

himitsu 31. Jan 2012 15:22

AW: TabControl
 
FindComponent/FindControl sucht nach Owner-Beziehungen und nicht nach Parent-Beziehungen.

PageControl1.ActivePage.FindComponent oder PageControl1.ActivePage.FindControl sucht im ActivePage nach Controls/Components, deren Owner dieses ActivePage ist.
Du hast aber als Owner die Form (Self) angegeben ... wo muß man nun also nach den erstellten Komponenten (Components) suchen?

Sir Rufo 31. Jan 2012 15:26

AW: TabControl
 
Äh das hatten wir doch erst letztens

FindComponent durchsucht die Owner-Beziehungen
FindControl durchsucht die Parent-Beziehungen

DeddyH 31. Jan 2012 15:45

AW: TabControl
 
Deshalb ja meine Frage in #12 :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:25 Uhr.
Seite 2 von 2     12   

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-2025 by Thomas Breitkreuz