![]() |
Delphi-Version: XE
Leere ListView Einträge löschen und Spalte nach oben rücken?
Hallo,
ich habe eine Listview mit diversen Zeilen und 3 Spalten, wovon auch leere Einträge drin sind, die ich löschen möchte. Die leeren Einträge habe ich nachfoglend mal mit ( leer ) gekennzeichnet.
Delphi-Quellcode:
Wie kann ich es bewerkstelligen, dass die leeren Einträge, hier mit ( leer ) gekennzeichnet, gelöscht werden und die entsprechende Spalte nach oben rückt?
Spalte 1 Spalte 2 Spalte 3
Zeile 1 Textfeld ( leer ) Textfeld Zeile 2 ( leer ) Textfeld Textfeld Zeile 3 Textfeld Textfeld ( leer ) Wünschenswert wäre eine zusammengerückte Listview in folgendem Format:
Delphi-Quellcode:
Dann bräuchte ich noch eine Abfrage, wie ich komplett leere Zeilen, wie in diesem Fall die letzte, löschen kann.
Spalte 1 Spalte 2 Spalte 3
Zeile 1 Textfeld Textfeld Textfeld Zeile 2 Textfeld Textfeld Textfeld Zeile 3 ( leer ) ( leer ) ( leer ) Kann mir da jemand helfen? Danke im Voraus. |
AW: Leere ListView Einträge löschen und Spalte nach oben rücken?
Du kannst im TListview keine Nebenspalten "löschen", höchstens leeren.
Das liegt daran, dass nur der eintrag der jeweils ersten Spalte "real" ist. Die anderen sind nur items in der SubItems-Stringlist. Das mit dem Nachrücken lässt sich aber recht einfach "simulieren", in dem du eine FOR-Schleife einfügst. Ich würde das ganze so machen: Das hier tut, was du willst. Bitte nicht nur kopieren, auch verstehen... ;)
Delphi-Quellcode:
procedure Einruecken;
var Index_Column: Integer; Index_Line: Integer; begin for Index_Column := 0 to ListView.Columns.Count - 2 do begin Index_Line := 0; while Index_Line < ListView.Items.Count - 1 do begin if Length(ListView.Items.Item[Index_Line].SubItems.Strings[Index_Column]) = 0 then begin ListView.Items.Item[Index_Line].SubItems.Strings[Index_Column] := ListView.Items.Item[Index_Line + 1].SubItems.Strings[Index_Column]; ListView.Items.Item[Index_Line + 1].SubItems.Strings[Index_Column] := ''; end else begin Inc(Index_Line); end; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:02 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