Warum glaubst du sagen dir alle, du sollst Ein- und Ausgaben als Parameter/Rückgabewerte deklarieren und mit lokalen arbeiten?
Weil dein Code sonst unverständlich und nicht wartbar ist.
Niemand liest so was gern und Fehlersuche kannst du vergessen.
Du möchtest die Summe für einen bestimmten Bereich?
Dann schreib eine Funktion die genau das macht und nichts anderes:
Delphi-Quellcode:
function TMomFiles.BerechneSumme(const ARect: TRect): Double;
var
x, y: Integer;
begin
Result := 0;
for y := ARect.Top to ARect.Bottom do
for x := ARect.Left to ARect.Right do
Result := Result + ValueArray[x, y];
end;
function TMomFiles.BerechneMinimum(const ARect: TRect): Double;
var
x, y: Integer;
begin
Result := ValueArray[ARect.Left, ARect.Top];
for y := ARect.Top to ARect.Bottom do
for x := ARect.Left to ARect.Right do
if ValueArray[x, y] < Result then
Result := ValueArray[x, y];
end;
Für die spezielle Auswertung kannst du dann die Unterfunktionen benutzen.
Delphi-Quellcode:
procedure TMomFiles.Auswertung(const ARect: TRect);
var
lRect: TRect;
x: Integer;
begin
lRect.Top := ARect.Top
lRect.Bottom := ARect.Bottom;
for x := ARect.Left to ARect.Right do
begin
lRect.Left := x;
lRect.Right := x;
ValueArray[x, ARect.Bottom + 1] := BerechneSumm(lRect);
ValueArray[x, ARect.Bottom + 2] := BerechneMinimum(lRect);
{...}
end;
end;