Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Array zählt nicht hoch ?!

  Alt 31. Jul 2009, 13: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