Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.477 Beiträge
 
Delphi 12 Athens
 
#6

Re: Array zählt nicht hoch ?!

  Alt 31. Jul 2009, 14:32
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;
  Mit Zitat antworten Zitat