Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#20

Re: In den ListView SubItems Beträge addieren

  Alt 11. Nov 2007, 15:54
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;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat