![]() |
Die gemeine Listview-Komponente :-/
Hi,
ich habe gleich mehrere Probleme mit einer Listview-Komponente :wall: Ich benutze den ViewStle vsReport. Wie füge ich jetzt Daten in die Liste ein? Ich habe das bis jetzt immer so gemacht:
Delphi-Quellcode:
Muss ich "Neuer_Eintrag" irgendwie wieder freigeben?
var Neuer_Eintrag: TListItem;
begin Neuer_Eintrag := listview1.Items.add; Neuer_Eintrag.Caption := 'test' Neuer_Eintrag.Subitems.Insert(0,'test1'); Neuer_Eintrag.SubItems.Insert(1,'test2'); end; Jetzt kommt das, was mir richtig Probleme macht: :oops: Wie kann ich einzelne Subitems,bzw. die Caption verändern? Sprich aus test2 z.B: test3 machen? Und wie lösche ich die Einträge wieder, wenn mir der ItemIndex nicht bekannt ist, sondern nur das, was in der Zeile steht? Denn der ItemIndex ändert sich doch, sobald ein vorheriger Eintrag gelöscht wird, oder? Oft bekomme ich die Exception 'Zugriffsverletzung . . .' Weiß jemand, wie's richtig geht? Schonmal Danke. :love: MfG Christian |
Re: Die gemeine Listview-Komponente :-/
Machs doch so:
Delphi-Quellcode:
begin
with listview1.Items.add do begin Caption := 'test'; Subitems.Add('test1'); SubItems.Add('test2'); end; end; |
Re: Die gemeine Listview-Komponente :-/
@scp Danke für dein Antwort, aber das ist ja jetzt eigentlich nur eine kleine Schönheitsoperation :-D .
Wie veränder ich die Subitems denn? Und wie finde ich ein Item, von dem mir nur die Caption oder ein SubItem bekannt ist? MfG Christian |
Re: Die gemeine Listview-Komponente :-/
Delphi-Quellcode:
function LVIndexByCaption(ListItems : TListItems; cText : String) : Integer;
var I: Integer; begin result := -1; for i := 0 to (ListItems.Count-1) do If (ListItems[i].Caption = cText) then begin result := i; Break; end; end; function LVIndexBySubitem(ListItems : TListItems; cText : String; Col : integer) : Integer; var I: Integer; begin result := -1; for i := 0 to (ListItems.Count-1) do If (ListItems[i].Subitems[Col] = cText) then begin result := i; Break; end; end;
Delphi-Quellcode:
var
lvIndex : integer; begin lvIndex := LVIndexBySubitem(ListView1.Items, 'test1', 0); ListView1.Items[lvIndex].Subitems[0] := 'test3'; end; |
Re: Die gemeine Listview-Komponente :-/
@scp:
Genau da hab ich gesucht. Schonmal ein Problem weniger :lol: Danke. Jetzt bleibt nur noch die Frage, wie ich ein Subitem verändere, ohne das eine Exception ausgelöst wird. MfG Christian |
Re: Die gemeine Listview-Komponente :-/
Habs jetzt nicht ausprobiert, aber ich denke das müsste gehen:
Code:
var index:Integer;
.... .... index:=Listview1.Items.IndexOf('Test1'); |
Re: Die gemeine Listview-Komponente :-/
@chris
Dazu ein Tip: Du solltest immer in jeder Zeile soviele Subitems hinzufügen, damit alle Columns gefüllt sind. Wenn kein Text drin sein soll, machst du einfach ein
Delphi-Quellcode:
Add('');
|
Re: Die gemeine Listview-Komponente :-/
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:51 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