AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls D2009 : TListView -> Groups -> State lässt sich nicht ändern
Thema durchsuchen
Ansicht
Themen-Optionen

D2009 : TListView -> Groups -> State lässt sich nicht ändern

Ein Thema von LoCrux · begonnen am 7. Aug 2014 · letzter Beitrag vom 18. Nov 2014
Antwort Antwort
Benutzerbild von LoCrux
LoCrux

Registriert seit: 5. Mär 2007
Ort: Gwang-Yang-City
48 Beiträge
 
Delphi 2009 Enterprise
 
#1

D2009 : TListView -> Groups -> State lässt sich nicht ändern

  Alt 7. Aug 2014, 17:12
Hallo @All,

eigenlich sollte man bei einer TListView (ViewStyle:vsReport & GroupView:True) über ListView.Groups[x].State
das Attribut lgsCollapsed zusätzlich setzen können wenn State=[lgsCollapsible] --> State=[lgsCollapsible,lgsCollapsed].

Nur weigert sich Delphi den State to setzen.
Beim Debuggen erhalte ich nach jedem Aufruf der Test Procedure immer wieder nur den State = [lgsCollapsible] (so wie defaultmässig in der IDE gesetzt).
TListView.SetState wird korrekt aufgerufen und der neue state FState:=Value zugewiesen.
Nur irgendwo wird das wieder rückgängig gemacht!!??

Hat einer eine Idee???
Fehlt was???
Wäre für jede Hilfe dankbar.

Test Procedure:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
begin
  With lv do
  begin
    Items.BeginUpdate;
    for i := 0 to Groups.Count - 1
    do begin
      if lgsCollapsed in Groups[i].state
      then begin
        Groups[i].state := Groups[i].state - [lgsCollapsed]
      end
      else begin
        Groups[i].state := Groups[i].state + [lgsCollapsed];
      end;
    end;
    Items.EndUpdate;
  end;
end;
“C++ is an insult to the human brain.” [Niklaus Wirth]

2B OR NOT 2B (.. THAT IS FF)

Geändert von LoCrux ( 7. Aug 2014 um 17:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von LoCrux
LoCrux

Registriert seit: 5. Mär 2007
Ort: Gwang-Yang-City
48 Beiträge
 
Delphi 2009 Enterprise
 
#2

AW: D2009 : TListView -> Groups -> State lässt sich nicht ändern

  Alt 14. Aug 2014, 18:03
Solved!!!

Delphi-Quellcode:
procedure ListViewCE(lv:TJVListView;Collapsed:boolean);
var
  id : Integer;
  res : Integer;
  h : HWND;
  col : integer;
begin
 h := lv.Handle;
 if (h = 0) then exit;
 for id := 0 to lv.Groups.Count-1
 do begin
   if Boolean(ListView_HasGroup(h,id))
   then begin
     if Collapsed then col := 1 else col := 4;
     res := ListView_SetGroupState(h,id,LVGS_COLLAPSED,col);
   end;
 end;
 Application.ProcessMessages;
end;
“C++ is an insult to the human brain.” [Niklaus Wirth]

2B OR NOT 2B (.. THAT IS FF)
  Mit Zitat antworten Zitat
Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#3

AW: D2009 : TListView -> Groups -> State lässt sich nicht ändern

  Alt 18. Nov 2014, 14:10
Solved!!!

Delphi-Quellcode:
procedure ListViewCE(lv:TJVListView;Collapsed:boolean);
var
  id : Integer;
  res : Integer;
  h : HWND;
  col : integer;
begin
 h := lv.Handle;
 if (h = 0) then exit;
 for id := 0 to lv.Groups.Count-1
 do begin
   if Boolean(ListView_HasGroup(h,id))
   then begin
     if Collapsed then col := 1 else col := 4;
     res := ListView_SetGroupState(h,id,LVGS_COLLAPSED,col);
   end;
 end;
 Application.ProcessMessages;
end;
Stecke gerade am gleichen Problem fest. Da du ja anscheinend auf eine Lösung gestoßen bist, wäre es möglich von dir deinen Post nochmal kurz genauer zu erläutern ?
00111100001100110010000001000100011001010110110001 1100000110100001101001
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

AW: D2009 : TListView -> Groups -> State lässt sich nicht ändern

  Alt 18. Nov 2014, 14:17
Schau mal hier: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#5

AW: D2009 : TListView -> Groups -> State lässt sich nicht ändern

  Alt 18. Nov 2014, 14:37
Hab bisher kaum was mit der Win API gemacht (Anfänger), zusätzlich lässt sich die Procedur leider auch nicht kompilieren.
00111100001100110010000001000100011001010110110001 1100000110100001101001
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

AW: D2009 : TListView -> Groups -> State lässt sich nicht ändern

  Alt 18. Nov 2014, 14:49
Hast Du die Unit CommCtrl eingebunden?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Back2Code
Back2Code

Registriert seit: 6. Feb 2012
Ort: Deutschland
272 Beiträge
 
Delphi XE7 Professional
 
#7

AW: D2009 : TListView -> Groups -> State lässt sich nicht ändern

  Alt 18. Nov 2014, 15:01
Hast Du die Unit CommCtrl eingebunden?
Nein Wie findet man sowas am besten raus welche Unit benötigt wird?


Hab die Unit jetzt eingebunden jetzt funktionierst einwandfrei. Danke für den Tipp.
00111100001100110010000001000100011001010110110001 1100000110100001101001
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: D2009 : TListView -> Groups -> State lässt sich nicht ändern

  Alt 18. Nov 2014, 15:03
Wie findet man sowas am besten raus welche Unit benötigt wird?
Ich drück immer F1 auf dem nicht gefundenen Befehl.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#9

AW: D2009 : TListView -> Groups -> State lässt sich nicht ändern

  Alt 18. Nov 2014, 15:05
Ganz ehrlich? Ich hab auch schnell gesuchmaschint
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:56 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