Browse Source

Lib: add MaxValues utility function

Herman Schoenfeld 7 years ago
parent
commit
ade9078afb
1 changed files with 14 additions and 1 deletions
  1. 14 1
      src/libraries/sphere10/UCommon.pas

+ 14 - 1
src/libraries/sphere10/UCommon.pas

@@ -59,6 +59,7 @@ function GetSetValue(const aSet:PTypeInfo; Name: String): Integer;
 { Clip/Min/Max Value }
 { Clip/Min/Max Value }
 function ClipValue( AValue, MinValue, MaxValue: Integer) : Integer;
 function ClipValue( AValue, MinValue, MaxValue: Integer) : Integer;
 function MinValue(const AArray : array of Cardinal) : Cardinal;
 function MinValue(const AArray : array of Cardinal) : Cardinal;
+function MaxValue(const AArray : array of Cardinal) : Cardinal;
 
 
 { DateTime functions }
 { DateTime functions }
 function TimeStamp : AnsiString;
 function TimeStamp : AnsiString;
@@ -725,13 +726,25 @@ end;
 function MinValue(const AArray : array of Cardinal) : Cardinal;
 function MinValue(const AArray : array of Cardinal) : Cardinal;
 var i : SizeInt;
 var i : SizeInt;
 begin
 begin
-  Result := -1;
+  if Length(AArray) = 0 then raise EArgumentException.Create('AArray is empty');
+  Result := AArray[Low(AArray)];
   for i := Low(AArray) to High(AArray) do begin
   for i := Low(AArray) to High(AArray) do begin
     if Result > AArray[i] then
     if Result > AArray[i] then
       Result := AArray[i];
       Result := AArray[i];
   end;
   end;
 end;
 end;
 
 
+function MaxValue(const AArray : array of Cardinal) : Cardinal;
+var i : SizeInt;
+begin
+  if Length(AArray) = 0 then raise EArgumentException.Create('AArray is empty');
+  Result := AArray[Low(AArray)];
+  for i := Low(AArray) to High(AArray) do begin
+    if Result < AArray[i] then
+      Result := AArray[i];
+  end;
+end;
+
 { TBox }
 { TBox }
 
 
 class constructor TBox<T>.Create;
 class constructor TBox<T>.Create;