![]() |
Listview Columns einblenden, ausblenden?
Hallo Leute,
Ich moechte den User die Gelegenheit geben die Spalten(Columns) einer Listview(vsReport) einblenden oder ausblenden zu lassen ueber Checkboxes. Die Spalten(7 Stueck, 0 bis 6) existieren bereits mit der Caption aber die Breite steht auf 0; Wenn ich jetzt eine Checkbox auf checked := true setze wird alles richtig angezeigt, sobald ich eine demarkiere werden die SubItems eine Spalte zu viel nach hinten geschoben. Der code ist vielleicht nicht optimal aber bis jetzt klapt es.
Delphi-Quellcode:
Weiss einer vielleicht die Loesung?
listitem := listview1.Items.add;
listitem.Caption := IntToStr(Succ(i)); if Date.Checked = true then begin Listview1.Columns.Items[1].Caption := 'Date:'; Listview1.Column[1].Width := 70; z.Values['Added'] := Parse(' ', z.Values['Added'], 1); listitem.SubItems.add(z.Values['Added']); end else Listview1.Column[1].Width := 0; if Category.Checked = true then begin Listview1.Columns.Items[2].Caption := 'Category:'; Listview1.Column[2].Width := 100; listitem.SubItems.add(z.Values['Category']); end else Listview1.Column[2].Width := 0; if Release.Checked = true then begin Listview1.Columns.Items[3].Caption := 'Release:'; Listview1.Column[3].Width := 300; listitem.SubItems.add(SimpleRSS.Items.Items[i].Title); end else Listview1.Column[3].Width := 0; .... ..... Listview1.Invalidate; Besten Dank im voraus. Lucius.. |
Re: Listview Columns einblenden, ausblenden?
Mhh, ich hab gerade leider nicht Delphi laufen und kann damit nicht überprüfen, ob das richtig ist, aber probier doch mal
Delphi-Quellcode:
Und das am besten beim OnKlick auf die jeweilige Checkbox - das könnte dann so aussehen
Column[x].Visible = False
Delphi-Quellcode:
Column[x].Visible := CheckBoxX.Checked;
|
Re: Listview Columns einblenden, ausblenden?
Hi St Pauli, die Listview Columns haben keine Visible properties sonst haette ich das schon hingekriegt.
|
Re: Listview Columns einblenden, ausblenden?
OK, sorry, dass war wohl ein Schuss in den Ofen... :oops:
Ich verstehe nicht ganz, wann du diesen geposteten Code verwendest... OK, Visible geht nicht, warum machst du dann nicht beim OnKlick der CheckBox einfach
Delphi-Quellcode:
und füllst die ListView einfach mit allen Werten der jeweiligen ListView.
if Category.Checked then
Listview1.Column[2].Width := 100; else Listview1.Column[2].Width := 0; Bei mir klappt es... |
Re: Listview Columns einblenden, ausblenden?
St.Pauli, die Columns ein- und ausblenden geht, es geht sich mehr um die Zeilen die gefuehlt werden bei der Spalte, da liegt der Haken.
Zb wenn die Listview Spalten so aufgebaut sind Zitat:
|
Re: Listview Columns einblenden, ausblenden?
Ok, also ich habe jetzt eine ListView exakt so nachgebaut, 7 CheckBoxes, die jeh nach Status die jeweiligen Kategorieen ausblenden.
Ich blende immer mal irgend ein paar Spalten aus, fügen dann neue Testwerte hinzu und wenn ich dann alle Spalten wieder anzeige, steht in jeder Spalte der richtige Testwert, ohne irgendwelche Verschiebungen!!! |
Re: Listview Columns einblenden, ausblenden?
So habs hingekriegt, war etwas gefummel aber es laueft jetzt sowie es muss.
Dank fuer eure Antworten. Gruss Lucius. |
Re: Listview Columns einblenden, ausblenden?
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Lucius,
auch wenn du es nicht brauchst - ich habe einen proof of concept angehängt.
marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 Uhr. |
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 by Thomas Breitkreuz