Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Delphi ListView Gruppen zusammenklappen (https://www.delphipraxis.net/182789-delphi-listview-gruppen-zusammenklappen.html)

Back2Code 18. Nov 2014 12:30

Delphi ListView Gruppen zusammenklappen
 
Hallo Leute, ich habe folgendes Problem: Ich benutze ein ListView mit verschiedenen Gruppen. Diese wiederrum beinhalten natürlich auch ein paar Elemente. Da der Anwender nicht beim Programmstart von lauter "Einträgen" erschlagen werden soll, wollte ich die ListView Gruppen beim Start direkt alle einklappen was mir leider bisher nicht gelungen ist.

Komischerweise lässt in der Design Zeit auch nicht der State der Gruppe auf lgsCollapsed ändern. Bleibt einfach false.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  Listview2.Groups.BeginUpdate;
    for i := 1 to Listview2.Groups.Count - 1 do
    begin
       Listview2.Groups[i].State := [lgsCollapsed];
    end;
    Listview2.Groups.EndUpdate;
end;
Obriger Code wrkt sich komischerweise auf das Listview so aus, dass die Einklappicons verschwinden....

Wie ist es möglich bestimmte Gruppen am besten nach eindeutiger ID einzuklappen bzw eingeklappt zu lassen. :oops:

IDE Delphi 2010

DeddyH 18. Nov 2014 12:47

AW: Delphi ListView Gruppen zusammenklappen
 
Zitat:

lgsCollapsed


Die Gruppe ist ausgeblendet. Nur für Windows Vista, Windows 7 oder höhere Windows-Betriebssysteme verfügbar.
Programmierst Du unter XP?

Back2Code 18. Nov 2014 12:53

AW: Delphi ListView Gruppen zusammenklappen
 
Zitat:

Zitat von DeddyH (Beitrag 1280179)
Zitat:

lgsCollapsed


Die Gruppe ist ausgeblendet. Nur für Windows Vista, Windows 7 oder höhere Windows-Betriebssysteme verfügbar.
Programmierst Du unter XP?

Win 8.1 :?

DeddyH 18. Nov 2014 12:58

AW: Delphi ListView Gruppen zusammenklappen
 
Vermutlich muss lgsCollapsible dann ebenfalls gesetzt werden (würde zumindest Sinn ergeben).

Back2Code 18. Nov 2014 13:01

AW: Delphi ListView Gruppen zusammenklappen
 
Zitat:

Zitat von DeddyH (Beitrag 1280182)
Vermutlich muss lgsCollapsible dann ebenfalls gesetzt werden (würde zumindest Sinn ergeben).

Hatte ich mich auch erste gedacht, daran liegts aber nicht. lgsCollapsible ist gesetzt und trotzdem lässt es sich nicht von Start aus / per Code einklappen.

DeddyH 18. Nov 2014 13:10

AW: Delphi ListView Gruppen zusammenklappen
 
Jetzt hab ich doch mal mein XE angeworfen, da funktioniert es einwandfrei unter 8.1 (hat allerdings einen Darstellungsfehler: man sieht die erste Gruppe erst, wenn man die 2. einmal aufklappt).

Back2Code 18. Nov 2014 13:23

AW: Delphi ListView Gruppen zusammenklappen
 
Zitat:

Zitat von DeddyH (Beitrag 1280186)
Jetzt hab ich doch mal mein XE angeworfen, da funktioniert es einwandfrei unter 8.1 (hat allerdings einen Darstellungsfehler: man sieht die erste Gruppe erst, wenn man die 2. einmal aufklappt).

Kann ich leider nicht nachmachen, ist nur 2010 da.

DeddyH 18. Nov 2014 13:26

AW: Delphi ListView Gruppen zusammenklappen
 
Im anderen Thread scheint es ja eine Lösung zu geben, die an der VCL vorbei direkt mit der API arbeitet.

Sir Rufo 18. Nov 2014 16:25

AW: Delphi ListView Gruppen zusammenklappen
 
Sollte tatsächlich
Delphi-Quellcode:
lgsCollapsible
irgendwann mal gesetzt gewesen hätte sein könnte, dann ist das spätestens nach
Delphi-Quellcode:
Listview2.Groups[i].State := [lgsCollapsed];
Geschichte.

Darum versuch es doch mal damit:
Delphi-Quellcode:
// setzen
Listview2.Groups[i].State := Listview2.Groups[i].State + [lgsCollapsed];
// entfernen
Listview2.Groups[i].State := Listview2.Groups[i].State - [lgsCollapsed];

Back2Code 19. Nov 2014 07:48

AW: Delphi ListView Gruppen zusammenklappen
 
Zitat:

Zitat von Sir Rufo (Beitrag 1280227)
Sollte tatsächlich
Delphi-Quellcode:
lgsCollapsible
irgendwann mal gesetzt gewesen hätte sein könnte, dann ist das spätestens nach
Delphi-Quellcode:
Listview2.Groups[i].State := [lgsCollapsed];
Geschichte.

Darum versuch es doch mal damit:
Delphi-Quellcode:
// setzen
Listview2.Groups[i].State := Listview2.Groups[i].State + [lgsCollapsed];
// entfernen
Listview2.Groups[i].State := Listview2.Groups[i].State - [lgsCollapsed];

Alle aufzuklappen funktioniert
Delphi-Quellcode:
Listview2.Groups[i].State := Listview2.Groups[i].State - [lgsCollapsed];
Alle einzuklappen leider nicht.


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