AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Listview Columns einblenden, ausblenden?

Ein Thema von lucius · begonnen am 16. Nov 2005 · letzter Beitrag vom 16. Nov 2005
Antwort Antwort
lucius

Registriert seit: 6. Okt 2005
Ort: Niederlande
215 Beiträge
 
Delphi 7 Enterprise
 
#1

Listview Columns einblenden, ausblenden?

  Alt 16. Nov 2005, 14:45
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:
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;
Weiss einer vielleicht die Loesung?
Besten Dank im voraus.

Lucius..
  Mit Zitat antworten Zitat
Benutzerbild von St.Pauli
St.Pauli

Registriert seit: 26. Dez 2004
351 Beiträge
 
Delphi 7 Personal
 
#2

Re: Listview Columns einblenden, ausblenden?

  Alt 16. Nov 2005, 14:50
Mhh, ich hab gerade leider nicht Delphi laufen und kann damit nicht überprüfen, ob das richtig ist, aber probier doch mal

Column[x].Visible = False Und das am besten beim OnKlick auf die jeweilige Checkbox - das könnte dann so aussehen

Column[x].Visible := CheckBoxX.Checked;
Gruß St.Pauli
  Mit Zitat antworten Zitat
lucius

Registriert seit: 6. Okt 2005
Ort: Niederlande
215 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Listview Columns einblenden, ausblenden?

  Alt 16. Nov 2005, 14:59
Hi St Pauli, die Listview Columns haben keine Visible properties sonst haette ich das schon hingekriegt.
  Mit Zitat antworten Zitat
Benutzerbild von St.Pauli
St.Pauli

Registriert seit: 26. Dez 2004
351 Beiträge
 
Delphi 7 Personal
 
#4

Re: Listview Columns einblenden, ausblenden?

  Alt 16. Nov 2005, 15:26
OK, sorry, dass war wohl ein Schuss in den Ofen...
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:
if Category.Checked then
Listview1.Column[2].Width := 100;
else
Listview1.Column[2].Width := 0;
und füllst die ListView einfach mit allen Werten der jeweiligen ListView.
Bei mir klappt es...
Gruß St.Pauli
  Mit Zitat antworten Zitat
lucius

Registriert seit: 6. Okt 2005
Ort: Niederlande
215 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Listview Columns einblenden, ausblenden?

  Alt 16. Nov 2005, 15:33
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:
NR, Date, Category, Release, Size, Status, Speed
und die Checkboxen Category, Release und Size sind markiert dan schiebt er die ListView. Subitems von Size in Release, von Release in Category.
  Mit Zitat antworten Zitat
Benutzerbild von St.Pauli
St.Pauli

Registriert seit: 26. Dez 2004
351 Beiträge
 
Delphi 7 Personal
 
#6

Re: Listview Columns einblenden, ausblenden?

  Alt 16. Nov 2005, 15:58
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!!!
Gruß St.Pauli
  Mit Zitat antworten Zitat
lucius

Registriert seit: 6. Okt 2005
Ort: Niederlande
215 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Listview Columns einblenden, ausblenden?

  Alt 16. Nov 2005, 17:13
So habs hingekriegt, war etwas gefummel aber es laueft jetzt sowie es muss.
Dank fuer eure Antworten.

Gruss Lucius.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Listview Columns einblenden, ausblenden?

  Alt 16. Nov 2005, 19:44
Hi Lucius,

auch wenn du es nicht brauchst - ich habe einen proof of concept angehängt.
  • listview ist virtuell
  • right click auf column header blendet column aus
  • right click auf caption header blendet alle columns ein
  • column width wird wieder hergestellt
  • zu kleine Spalten werden beim Einblenden auf eine Standardbreite gesetzt
  • Spalten werden beim Programmstart automatisch aus Label-Zeile erstellt
Viel Spaß beim Vergleichen

marabu
Angehängte Dateien
Dateityp: zip toggle_948.zip (2,5 KB, 59x aufgerufen)
  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 11:50 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