Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Objectlist für listview (https://www.delphipraxis.net/173768-objectlist-fuer-listview.html)

sx2008 15. Mär 2013 12:57

AW: Objectlist für listview
 
Dir fehlt schlicht und ergreifend eine Zwischenvariable, die das Leben viel einfacher macht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
   Item: TListItem;
   i: integer;
   Gesamt: double;
   irgendwas : TIrgendwas; // die Zwischenvariable
begin
   if form2.ShowModal = mrok then begin
   Gesamt := 0;
   ListView1.Items.BeginUpdate;
   try
     ListView1.Items.Clear;
     for i := 0 to fObjects.Count - 1 do
       begin
         irgendwas := FObjects[i] as TIrgendwas; // ***
         // jetzt kann man ganz bequem mit "irgendwas" weiterarbeiten
         // der Code wird viel klarer und einfacher zu lesen
         Item := ListView1.Items.Add;
         Item.Caption := IntToStr(irgendwas.ErsteZahl);
         Item.SubItems.Add(IntToStr(irgendwas.ZweiteZahl));
         Gesamt := Gesamt + irgendwas.Summe; // nicht "FGesamt" sondern die lokale Variable "Gesamt"
         Item.SubItems.Add(Format('%.0n €', [Gesamt]));
      end;
   finally
     ListView1.Items.EndUpdate;
   end;
 end;
end;

Natcree 15. Mär 2013 13:10

AW: Objectlist für listview
 
Habe Gesamt jetzt unter Privat declariert Daher so

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
    Item: TListItem;
    i: integer;
    irgendwas : TIrgendwas;
 begin
    if form2.ShowModal = mrok then begin
    Gesamt := 0;
    ListView1.Items.BeginUpdate;
    try
      ListView1.Items.Clear;
      for i := 0 to fObjects.Count - 1 do
        begin
          irgendwas := FObjects[i] as TIrgendwas;
          Item := ListView1.Items.Add;
          Item.Caption := irgendwas.ErsteZahlasstring;
          Item.SubItems.Add (irgendwas.ZweiteZahlasstring);
          Gesamt := Gesamt + irgendwas.Summe; Variable "Gesamt"
          Item.SubItems.Add(Format('%.0n €', [Gesamt]));
       end;
    finally
      ListView1.Items.EndUpdate;
    end;
  end;
 end;
Er Zeigt aber immer noch nichts in der Listview an. Muss der code in die Form1 oder Form2 wo ich die Daten eingebe und mit ok bestätige ???

DeddyH 15. Mär 2013 13:17

AW: Objectlist für listview
 
Du musst das in Form2 erzeugte Objekt erst einmal Deiner Liste hinzufügen, sonst wird das nix.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:54 Uhr.
Seite 2 von 2     12   

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