Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Listview Items Filtern bzw. löschen (https://www.delphipraxis.net/77375-listview-items-filtern-bzw-loeschen.html)

Onkelrossie 18. Sep 2006 20:43


Listview Items Filtern bzw. löschen
 
Guten Abend,
also ich habe eine Listview (ViewStyle = vsReport) mit 2 Spalten (A und B).
In der Spalte A steht entweder Erlaubt oder Verweigert und in der Spalte B verschiedene Dateien.
Es kann nun sein das eine Datei mehrmals vorkommt (einmal als Erlaubt und einmal als Verweigert).
Bsp.:
Code:
Spalte A  |Spalte B
-------------------------
Erlaubt   | Datei1.cmb
Erlaubt   | Datei2.cmb <--- Dieser eintrag sollte nicht vorhanden sein bzw. gelöscht werden da
Verweigert | Datei2.cmb <--- hier die Datei nochmal ist als Verweigert.
Erlaubt   | Datei3.cmb
Verweigert | Datei4.cmb
Verweigert | Datei5.cmb <--- Da hier die Datei5.cmb als Verweigert steht
Erlaubt   | Datei5.cmb <--- darf die Datei hier nicht nochmal als Erlaubt stehen
Wie bekomme ich nun raus ob die Datei schon als Verweigert da steht und lösche dann die selbige welche als Erlaubt da steht oder anders gefragt, kann ich das schon beim eintragen in die ListView vermeinden?

Vielen Dank schonmal im vorraus.


mfG
Onkelrossie

marabu 19. Sep 2006 06:15

Re: Listview Items Filtern bzw. löschen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Morgen.

In einer ListView würde ich das identifizierende Element immer in der ersten Spalte (Caption) eintragen - in deinem Beispiel wäre das der Dateiname. In anderen Beiträgen habe ich stets den virtuellen Modus (OwnerData = True) der ListView propagiert, aber wenn du die Standardeinstellung verwendest, dann kannst du etwa so vorgehen:

Delphi-Quellcode:
procedure TDemoForm.ButtonClick(Sender: TObject);
var
  item: TListItem;
begin
  item := ListView.FindCaption(0, Edit.Text, False, True, False);
  if Assigned(item) then
    item.SubItems[0] := IfThen(CheckBox.Checked, 'Nein', 'Ja') else
  with ListView.Items.Add do
  begin
    Caption := Edit.Text;
    SubItems.Add(IfThen(CheckBox.Checked, 'Nein', 'Ja'));
    Selected := True;
    MakeVisible(False);
  end;
  ListView.SetFocus;
end;
Grüße vom marabu

Onkelrossie 19. Sep 2006 19:16

Re: Listview Items Filtern bzw. löschen
 
Gaten Abend, Marabu,
das war der richtige Denkanstoss. Hatt sehr gut geklappt, Danke!

mfG
Onkelrossie


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 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