Witam.
Czy jest jakiś sposób aby usunąć dany wiersz w ListView z pominięciem pierwszej kolumny (czyli usunięcie ostatniej pozycji dla tej kolumny).
Potrzebuje tego bo w pierwszej kolumnie trzymam numer wiersza i po każdorazowym usunięciu muszę ustawiać na nowo wszystkie wartości dla pierwszej kolumny od miejsca usunięcia.
Tak więc zastanawiam się czy istnieje prostsza metoda.
jakieś sugestie??
Ten komponent jest celowo tak zbudowany, aby usunięcie wiersza powodowało usunięcie wszystkich jego komórek, z wszystkich kolumn; Obstawiam, że nie istnieje lepsze rozwiązanie od przepisywania dalszych wierszy w dół (indeksowo), dlatego że komponent nie jest do tego przystosowany.
Hej!
Tak, jak napisał furious programming - tak jest LV zrobiony, aby usuwał cały wiersz.
A nie możesz po prostu po usunięciu na nowo ponumerować kolumnę #?
Przecież to zwykłe LP., a nie jakieś unikalne ID wiersza.
Przykład z Delphi:
var
i : integer;
begin
LV.Items.BeginUpdate;
try
for i := 0 to LV.Items.Count-1 do
LV.Items.Item[i].Caption:=IntToStr(i+1);
finally
LV.Items.EndUpdate;
end;
end;
Właśnie chodzi o to, że obecnie stosuje taką metodę. Po prostu mam bzika na punkcie optymalizacji kodu i byłem ciekaw czy jest jakieś inne rozwiązanie podobne do tego z excela.
@smarq - zwróć uwagę na to, że aplikacje typu Excel nie używają ListView
, tylko ~StringGrid
; Może z tym komponentem popróbuj coś? Przynajmniej będziesz miał z głowy pierwszą kolumnę.