Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Die gemeine Listview-Komponente :-/ (https://www.delphipraxis.net/11622-die-gemeine-listview-komponente.html)

Chris1986 10. Nov 2003 18:26


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:
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;
Muss ich "Neuer_Eintrag" irgendwie wieder freigeben?

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

scp 10. Nov 2003 18:30

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;

Chris1986 10. Nov 2003 18:32

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

scp 10. Nov 2003 18:42

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;

Chris1986 10. Nov 2003 18:46

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

huberlix 10. Nov 2003 18:50

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');

scp 10. Nov 2003 18:51

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('');

scp 10. Nov 2003 18:53

Re: Die gemeine Listview-Komponente :-/
 
Zitat:

Zitat von huberlix
Habs jetzt nicht ausprobiert, aber ich denke das müsste gehen:
Code:
var index:Integer;
....
....
index:=Listview1.Items.IndexOf('Test1');

Zitat:

Zitat von Delphi Hilfe
Die Methode IndexOf gibt die Position eines Listeneintrags in einem TListItem-Objekt zurück.

function IndexOf(Value: TListItem): Integer;

Beschreibung

Mit IndexOf können Sie den Index des im Parameter Value übergebenen Listeneintrags ermitteln.



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