Thema: Delphi Listview.Items.Insert ?

Einzelnen Beitrag anzeigen

Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#4

Re: Listview.Items.Insert ?

  Alt 29. Nov 2005, 15:16
nein, du machst das wie folgt:

Delphi-Quellcode:
var
 LI: TListItem;
begin
  LI := ListView1.Items.Insert(0);
  LI.Caption := 'Neuer Eintrag';
  LI.SubItems.Add('Spalte 1');
  LI.SubItems.Add('Spalte 2');
  ...
end;
mit LI gibst du der ListView ja den Listeneintrag. Diesen fügst du via Insert(0) nach ganz oben. Die restlichen Eigenschaften (also Texte der Spalten) weist du einfach mit SubItems.Add('Test') zu.

edit:

ich hab mir mal deinen o. g. quelltext angesehen. es müsste etwa (etwa, da ich nicht weiß, was die variable w ist) so aussehen:

Delphi-Quellcode:
var
  LI: TListItem;
  O: Integer;
begin

  ListView.Items.BeginUpdate; // wichtig: vor schleifendurchlauf, da sonst mit jedem neuen eintrag aufgerufen wird.

  for o := 0 to w.Count -1 do
   begin

    x.Insert(0, w.Strings[o]); //keine ahnung was x ist.

    z := CreateStrings(SimpleRSS.Items.Items[o].Description); //schätze hier liest du die strings aus

    listitem := listview.Items.Insert(0); //neuen listview eintrag ganz oben erstellen

    listitem.Caption := IntToStr(Succ(o)); // caption zuweisen

    z.Values['Added'] := Parse(' ', z.Values['Added'], 1); //auch keine ahnung

    // subitems erstellen
    listitem.SubItems.Add(z.Values['Added']);
    listitem.SubItems.Add(z.Values['Category']);
    listitem.SubItems.Add(SimpleRSS.Items.Items[o].Title);
    listitem.SubItems.Add(z.Values['Size']);
    listitem.SubItems.Add(z.Values['Status']);
    listitem.SubItems.Add(z.Values['Speed']);
    listitem.SubItems.Add(SimpleRSS.Items.Items[o].Link);
    listitem.SubItems.Add(z.Values['Download']);
   end;

  Neu.Caption := 'Anzahl NEUE Items: ' + IntTostr(w.count); // am ende der schleife, bzw. danach das label akt.
  z.Free; //keine anhnung, könnte auch noch am ende der schleife freigegeben werden, ich weiß nicht wann du das erstellst.
  listview.Items.EndUpdate; //und hier definitiv nach durchlauf der schleife das endupdate einläuten.
  Mit Zitat antworten Zitat