Hallo,
habe folgendes Problem:
- ich habe mir ein Programm erstellt in dem ich einige werte in ein Memofeld übergebe. mein problem liegt darin das ich bestimmte werte nicht addieren kann bzw es wird mir ein relativ großer wert ausgegeben. ich habe mir die werte in einer Liste abgespeichert. nur das addieren funzt nicht so wie es sollte.
Hier mal der Quelltext:
Code:
TItem = class(TObject)
public
next: TItem;
wert: real;
end;
TListe = class(TObject)
private
first: TItem;
last: TItem;
public
gesamt: real;
procedure add(wert: real);
function addieren(gesamt: real):real;
function count(): integer;
end;
implementation
{ TListe }
procedure TListe.add(wert: real); //Item hinzufügen
var Item: TItem;
begin
Item:= TItem.Create;
Item.wert:= wert;
if first = Nil then
begin
first:= Item;
last:= Item;
end
else
begin
last.next:= Item;
last:= Item;
end;
end;
function TListe.addieren(gesamt: real):real; //Items addieren
var
i: integer;
Item: TItem;
begin
gesamt:= 0;
i:= count;
for i := 0 to count - 1 do
begin
gesamt:= gesamt + Item.wert; <--(Item.wert) hier wird mir dieser riesige wert übergeben
end;
Result:= gesamt;
end;
function TListe.count: integer; //Zählen der Items
var
i: integer;
Item: TItem;
begin
i:= 1;
Item:= first;
if first = Nil then
begin
i:= 0;
end
else
begin
while Item.next <> Nil do
begin
i:= i+1;
Item:= Item.next;
end
end;
result:= i;
end;
end.
ich hoffe es kann mir jemand helfen