AGB  ·  Datenschutz  ·  Impressum  







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

Listview sortieren: Makevisible(False)

Ein Thema von lucius · begonnen am 17. Nov 2005 · letzter Beitrag vom 18. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2      
lucius

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

Listview sortieren: Makevisible(False)

  Alt 17. Nov 2005, 16:53
Hallo Leute,
Ich probiere eine Art Sortierung fuer meine Listview zu bauen.
In der 3ten Spalte stehen die Werte wonach geguckt werden soll.
Die Werten koennen sein:
Zitat:
Film - DVD Film - SVCD Games - Console unsw
Jetzt moechte ich es hinkriegen das wenn ich zb ne Checkbox anklicke das nur die Film - DVD Werte in der Listview zu sehen sind.
Jetzt wollte ich das mit MakeVisible() hinkriegen aber es klappt nicht ganz.
MakeVisible und nicht Delete denn die andere Werte sollen in der LV drin bleiben aber nicht zu sehen sein.
Delphi-Quellcode:
procedure Form.SortierClick(Sender: TObject);
var
listitem : TListItem;
i: integer;
begin
   for i := 0 to listview.Items.Count -1 do
     begin
       if listitem.SubItems[1] = 'Films - DVDrthen
       begin
       Listview.Items.Item[i].MakeVisible(False);
       end;
     end;
end;
PS: Es handelt sich hier um keine Virtuellen Listview.
Recht herzlichen Dank.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Listview sortieren: Makevisible(False)

  Alt 17. Nov 2005, 17:19
Lösche die Einträge. Der Listview sollte nicht zur Datenhaltung, sondern nur zur Visualisierung verwendet werden. Damit trennst du dann auch OOP konform doe Daten von der Oberfläche.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
lucius

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

Re: Listview sortieren: Makevisible(False)

  Alt 17. Nov 2005, 17:56
Hi Lucki,
Delphi-Quellcode:
procedure TDemoForm.Button6Click(Sender: TObject);
var
listitem : TListItem;
i: integer;
begin
for i := 0 to listview.Items.Count -1 do
begin
if listitem.SubItems[1] = 'Films - DVDrthen <----- AccesViolation
     begin
     Listview.Items.Item[i].Delete;
     end;
end;
end;
Hat jemand nen Vorschlag?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Listview sortieren: Makevisible(False)

  Alt 17. Nov 2005, 18:11
Bei einer for-Schleife wird die Bedingung im Schleifenkopf nur einmal überprüft. Wenn du jetzt einen Eintrag löscht, läuft die Schleife zu weit und es kracht. Lösung: Lass die Schleife rückwärte mit Delphi-Referenz durchsuchendownto laufen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
lucius

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

Re: Listview sortieren: Makevisible(False)

  Alt 17. Nov 2005, 18:23
Hmmm Lucki,
Delphi-Quellcode:
procedure TDemoForm.Button6Click(Sender: TObject);
var
listitem : TListItem;
i: integer;
begin
for i := pred(listview.Items.Count) downto 0 do
begin
if listitem.SubItems[1] = 'Films - DVDrthen <------------- hier stimmt was nicht.
     begin
     Listview.Items.Item[i].Delete;
     end;
end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Listview sortieren: Makevisible(False)

  Alt 17. Nov 2005, 18:26
Zitat von lucius:
Hmmm Lucki,
if listitem.SubItems[1] = 'Films - DVDrthen <------------- hier stimmt was nicht.
Und woher soll ich jetzt, ohne Glaskugel, wissen, was das nicht stimmt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
lucius

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

Re: Listview sortieren: Makevisible(False)

  Alt 17. Nov 2005, 18:35
Ja sry Lucki,
Zitat:
if listitem.SubItems[1] = 'Films - DVDr' then <------------- hier stimmt was nicht.
Die Subitems Films - DVDr stehen in der 3e Spalte von der Listview.
Wie greife ich in den Loop darauf zu?
Er gibt den Fehler in listitem.SubItems[1].

Gruss Lucius.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Listview sortieren: Makevisible(False)

  Alt 17. Nov 2005, 18:36
Wenn es die dritte Spalte ist, warum gibst du denn dann als Index 1 ein? Etwas mehr nachdenken beim Programmieren bitte.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
lucius

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

Re: Listview sortieren: Makevisible(False)

  Alt 17. Nov 2005, 18:42
Sorry Lucki das ich deine Zeit verplempere.
Zitat:
listitem.SubItems[1] = 'Films - DVDr'
Ist schon gut so, bei CustomDrawItem gehts, aber die ganze loop stimmt nicht.
Ich gebe es auf.
  Mit Zitat antworten Zitat
Benutzerbild von idontwantaname
idontwantaname

Registriert seit: 31. Aug 2004
Ort: Traiskirchen
575 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Listview sortieren: Makevisible(False)

  Alt 17. Nov 2005, 20:38
nur so ne frage, wo weißt du listitem zu ?
ich quellcode find ich nirgends ein "listitem := listview.items[i];" oder ähnliches
Oliver Hanappi
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:40 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