![]() |
Listview sortieren: Makevisible(False)
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:
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:
PS: Es handelt sich hier um keine Virtuellen Listview.
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 - DVDr' then begin Listview.Items.Item[i].MakeVisible(False); end; end; end; Recht herzlichen Dank. |
Re: Listview sortieren: Makevisible(False)
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.
|
Re: Listview sortieren: Makevisible(False)
Hi Lucki,
Delphi-Quellcode:
Hat jemand nen Vorschlag?
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 - DVDr' then <----- AccesViolation begin Listview.Items.Item[i].Delete; end; end; end; |
Re: Listview sortieren: Makevisible(False)
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
![]() |
Re: Listview sortieren: Makevisible(False)
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 - DVDr' then <------------- hier stimmt was nicht. begin Listview.Items.Item[i].Delete; end; end; end; |
Re: Listview sortieren: Makevisible(False)
Zitat:
|
Re: Listview sortieren: Makevisible(False)
Ja sry Lucki,
Zitat:
Wie greife ich in den Loop darauf zu? Er gibt den Fehler in listitem.SubItems[1]. Gruss Lucius. |
Re: Listview sortieren: Makevisible(False)
Wenn es die dritte Spalte ist, warum gibst du denn dann als Index 1 ein? Etwas mehr nachdenken beim Programmieren bitte.
|
Re: Listview sortieren: Makevisible(False)
Sorry Lucki das ich deine Zeit verplempere.
Zitat:
Ich gebe es auf. |
Re: Listview sortieren: Makevisible(False)
nur so ne frage, wo weißt du listitem zu ?
ich quellcode find ich nirgends ein "listitem := listview.items[i];" oder ähnliches |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 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-2025 by Thomas Breitkreuz