浏览代码

[commons] delphi XE4 compatibility

Exilon 5 年之前
父节点
当前提交
62f6a9bcba
共有 1 个文件被更改,包括 13 次插入0 次删除
  1. 13 0
      Quick.Linq.pas

+ 13 - 0
Quick.Linq.pas

@@ -585,6 +585,10 @@ end;
 function TLinqArray<T>.Delete: Integer;
 var
   i : Integer;
+  {$IFNDEF DELPHIXE7_UP}
+  n : Integer;
+  len : Integer;
+  {$ENDIF}
 begin
   Result := 0;
   if fMatchString.IsEmpty then raise ELinqNotValidExpression.Create('Not valid expression defined!');
@@ -593,7 +597,16 @@ begin
     if Validate(fArray[i]) then
     begin
       //TObject(fArray[i]).Free;
+      {$IFDEF DELPHIXE7_UP}
       System.Delete(fArray,i,1);
+      {$ELSE}
+      len := Length(fArray);
+      if (len > 0) and (i < len) then
+      begin
+        for n := i + 1 to len - 1 do fArray[n - 1] := fArray[n];
+        SetLength(fArray, len - 1);
+      end;
+      {$ENDIF}
       Inc(Result);
     end;
   end;