![]() |
Re: In den ListView SubItems Beträge addieren
Das kommt mir komisch vor, stell doch mal einen Screenshot rein.
|
Re: In den ListView SubItems Beträge addieren
Und was geht nicht? Bzw. wie können wir dir Helfen?
|
Re: In den ListView SubItems Beträge addieren
Ich vermute stark, dass er versehentlich Items und SubItems verwechselt hat, deshalb meine Bitte um einen Screenshot.
|
Re: In den ListView SubItems Beträge addieren
Liste der Anhänge anzeigen (Anzahl: 1)
Hier
|
Re: In den ListView SubItems Beträge addieren
Zitat:
|
Re: In den ListView SubItems Beträge addieren
@Gehstock: der Preis steht nicht in Items[2], sondern in SubItems[1].
|
Re: In den ListView SubItems Beträge addieren
Danke
und nochmal Danke hatte ich grad auch |
Re: In den ListView SubItems Beträge addieren
Delphi-Quellcode:
die zuweisung von i klappt nicht da ja nichts selected wird also wie sag ich i das es
procedure TForm4.ListView1Change(Sender: TObject; Item: TListItem;
Change: TItemChange); var i: Integer; begin i:=0; //i :=Listview1.Selected.Index; if Listview1.Items[i].Checked then begin Ergebnis := StrtoFloat(Edit1.Text) + StrtoFloat(Listview1.Items[i].SubItems[1]); end else begin Ergebnis := StrtoFloat(Edit1.Text) - StrtoFloat(Listview1.Items[i].SubItems[1]); end; Edit1.Text :=Floattostr(Ergebnis) end; das 2. oder 3. item ist wenn ich in die 2. zeile klicke |
Re: In den ListView SubItems Beträge addieren
Delphi-Quellcode:
habs selbst erledigt
procedure TForm4.ListView1Change(Sender: TObject; Item: TListItem;
Change: TItemChange); var i: integer; gesamt : Extended; begin gesamt := 5.99 ; // Grundpreis for i := 0 to ListView1.Items.Count - 1 do if Listview1.Items[i].Checked then gesamt := gesamt + StrToFloat(ListView1.Items[i].SubItems[1]); if gesamt = 5.99 then gesamt := 0; wenn nichts gewählt auch kein grundpreis Edit1.Text := FloatToStr(gesamt); end; |
Re: In den ListView SubItems Beträge addieren
Hai Gehstock,
als Tip für zukünftigen Code habe ich das ganze mal etwas umgebaut.
Delphi-Quellcode:
uses
SysUtils; procedure RealInc(var x: Extended; const aValue: Extended = 1.0); overload; begin x := x + aValue; end; function RealInc(var x: Extended; const aValue: string = ''; errohandling: Boolean = True): Boolean; overload; var realvalue: Extended; begin result := False; if TryStrToFloat(aValue, realvalue) then begin RealInc(x, realvalue); result := True; end else begin if (errohandling) then begin raise Exception.create(Format( 'Der Inhalt von aValue ("%s") ist kein gültiger Gleitkommawert', [aValue])); end; end; end; function AddValuesFromLV(aLV: TListView; var aValue: Extended): Integer; var i: Integer; checkcount: Integer; begin checkcount := 0; with aLV do begin for i := 0 to Pred(Items.Count) do begin if (Items[i].Checked) then begin if (RealInc(aValue, Items[i].SubItems[1], False)) then begin Inc(checkcount); end; end; end; end; result := checkcount; end; procedure TDemo_Form.ListView1Change(Sender: TObject; Item: TListItem; Change: TItemChange); const grundpreis = 5.99; var gesamt: Extended; begin gesamt := 0; if (AddValuesFromLV((Sender as TListView), gesamt) > 0) then begin RealInc(gesamt, grundpreis); end; Edit1.Text := FloatToStr(gesamt); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:18 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