Przeglądaj źródła

+ Compatibility checks and code reformatting

michael 21 lat temu
rodzic
commit
01c02d63bb
1 zmienionych plików z 326 dodań i 295 usunięć
  1. 326 295
      rtl/objpas/types.pp

+ 326 - 295
rtl/objpas/types.pp

@@ -23,331 +23,362 @@ unit types;
 {$endif Win32}
 
 {$ifndef ver1_0}
-    const
-       RT_RCDATA = PChar(10);
-
-    type
-       DWORD = LongWord;
-
-       PLongint = System.PLongint;
-       PInteger = System.PInteger;
-       PSmallInt = System.PSmallInt;
-       PDouble = System.PDouble;
-       PByte = System.PByte;
-
-       TIntegerDynArray = array of Integer;
-       TCardinalDynArray = array of Cardinal;
-       TWordDynArray = array of Word;
-       TSmallIntDynArray = array of SmallInt;
-       TByteDynArray = array of Byte;
-       TShortIntDynArray = array of ShortInt;
-       TInt64DynArray = array of Int64;
-       TQWordDynArray = array of QWord;
-       TLongWordDynArray = array of LongWord;
-       TSingleDynArray = array of Single;
-       TDoubleDynArray = array of Double;
-       TBooleanDynArray = array of Boolean;
-       TStringDynArray = array of AnsiString;
-       TWideStringDynArray   = array of WideString;
-       {$ifdef Win32}
-       TPoint = Windows.TPoint;
+const
+  RT_RCDATA = PChar(10);
+
+type
+  DWORD = LongWord;
+
+  PLongint = System.PLongint;
+  PInteger = System.PInteger;
+  PSmallInt = System.PSmallInt;
+  PDouble = System.PDouble;
+  PByte = System.PByte;
+
+  TIntegerDynArray = array of Integer;
+  TCardinalDynArray = array of Cardinal;
+  TWordDynArray = array of Word;
+  TSmallIntDynArray = array of SmallInt;
+  TByteDynArray = array of Byte;
+  TShortIntDynArray = array of ShortInt;
+  TInt64DynArray = array of Int64;
+  TQWordDynArray = array of QWord;
+  TLongWordDynArray = array of LongWord;
+  TSingleDynArray = array of Single;
+  TDoubleDynArray = array of Double;
+  TBooleanDynArray = array of Boolean;
+  TStringDynArray = array of AnsiString;
+  TWideStringDynArray   = array of WideString;
+
+{$ifdef Win32}
+  TPoint = Windows.TPoint;
 {$else}
-       TPoint = packed record
-          X : Longint;
-          Y : Longint;
-       end;
+  TPoint = packed record
+    X : Longint;
+    Y : Longint;
+  end;
 {$endif}
-       PPoint = ^TPoint;
-       tagPOINT = TPoint;
+  PPoint = ^TPoint;
+  tagPOINT = TPoint;
 
 {$ifdef Win32}
-       TRect = Windows.TRect;
+  TRect = Windows.TRect;
 {$else}
-       TRect = packed record
-          case Integer of
-             0: (Left,Top,Right,Bottom : Longint);
-             1: (TopLeft,BottomRight : TPoint);
-       end;
+  TRect = packed record
+    case Integer of
+      0: (Left,Top,Right,Bottom : Longint);
+      1: (TopLeft,BottomRight : TPoint);
+    end;
 {$endif}
-       PRect = ^TRect;
-
-       TSize = packed record
-          cx : Longint;
-          cy : Longint;
-       end;
-       PSize = ^TSize;
-       tagSIZE = TSize;
-       SIZE = TSize;
-
-       TSmallPoint = packed record
-          x : SmallInt;
-          y : SmallInt;
-       end;
-       PSmallPoint = ^TSmallPoint;
-
-    type
-      TOleChar = WideChar;
-      POleStr = PWideChar;
-      PPOleStr = ^POleStr;
+  PRect = ^TRect;
+
+  TSize = packed record
+     cx : Longint;
+     cy : Longint;
+  end;
+  PSize = ^TSize;
+  tagSIZE = TSize;
+  SIZE = TSize;
+
+  TSmallPoint = packed record
+     x : SmallInt;
+     y : SmallInt;
+  end;
+  PSmallPoint = ^TSmallPoint;
+
+type
+  TOleChar = WideChar;
+  POleStr = PWideChar;
+  PPOleStr = ^POleStr;
 
 {$ifndef win32}
-    const
-      STGTY_STORAGE   = 1;
-      STGTY_STREAM    = 2;
-      STGTY_LOCKBYTES = 3;
-      STGTY_PROPERTY  = 4;
-
-      STREAM_SEEK_SET = 0;
-      STREAM_SEEK_CUR = 1;
-      STREAM_SEEK_END = 2;
-
-      LOCK_WRITE     = 1;
-      LOCK_EXCLUSIVE = 2;
-      LOCK_ONLYONCE  = 4;
-
-      E_FAIL = HRESULT($80004005);
-
-      STG_E_INVALIDFUNCTION = HRESULT($80030001);
-      STG_E_FILENOTFOUND = HRESULT($80030002);
-      STG_E_PATHNOTFOUND = HRESULT($80030003);
-      STG_E_TOOMANYOPENFILES = HRESULT($80030004);
-      STG_E_ACCESSDENIED = HRESULT($80030005);
-      STG_E_INVALIDHANDLE = HRESULT($80030006);
-      STG_E_INSUFFICIENTMEMORY = HRESULT($80030008);
-      STG_E_INVALIDPOINTER = HRESULT($80030009);
-      STG_E_NOMOREFILES = HRESULT($80030012);
-      STG_E_DISKISWRITEPROTECTED = HRESULT($80030013);
-      STG_E_SEEKERROR = HRESULT($80030019);
-      STG_E_WRITEFAULT = HRESULT($8003001D);
-      STG_E_READFAULT = HRESULT($8003001E);
-      STG_E_SHAREVIOLATION = HRESULT($80030020);
-      STG_E_LOCKVIOLATION = HRESULT($80030021);
-      STG_E_FILEALREADYEXISTS = HRESULT($80030050);
-      STG_E_INVALIDPARAMETER = HRESULT($80030057);
-      STG_E_MEDIUMFULL = HRESULT($80030070);
-      STG_E_PROPSETMISMATCHED = HRESULT($800300F0);
-      STG_E_ABNORMALAPIEXIT = HRESULT($800300FA);
-      STG_E_INVALIDHEADER = HRESULT($800300FB);
-      STG_E_INVALIDNAME = HRESULT($800300FC);
-      STG_E_UNKNOWN = HRESULT($800300FD);
-      STG_E_UNIMPLEMENTEDFUNCTION = HRESULT($800300FE);
-      STG_E_INVALIDFLAG = HRESULT($800300FF);
-      STG_E_INUSE = HRESULT($80030100);
-      STG_E_NOTCURRENT = HRESULT($80030101);
-      STG_E_REVERTED = HRESULT($80030102);
-      STG_E_CANTSAVE = HRESULT($80030103);
-      STG_E_OLDFORMAT = HRESULT($80030104);
-      STG_E_OLDDLL = HRESULT($80030105);
-      STG_E_SHAREREQUIRED = HRESULT($80030106);
-      STG_E_EXTANTMARSHALLINGS = HRESULT($80030108);
-      STG_E_DOCFILECORRUPT = HRESULT($80030109);
-      STG_E_BADBASEADDRESS = HRESULT($80030110);
-      STG_E_INCOMPLETE = HRESULT($80030201);
-      STG_E_TERMINATED = HRESULT($80030202);
-
-      STG_S_CONVERTED = $00030200;
-      STG_S_BLOCK = $00030201;
-      STG_S_RETRYNOW = $00030202;
-      STG_S_MONITORING = $00030203;
-
-      GUID_NULL: TGUID = '{00000000-0000-0000-0000-000000000000}';
-
-    type
-       PCLSID = PGUID;
-       TCLSID = TGUID;
-
-       LARGE_INT = Int64;
-       Largeint = LARGE_INT;
-       PDWord = ^DWord;
-
-       PDisplay = Pointer;
-       PEvent = Pointer;
-
-       TXrmOptionDescRec = record
-       end;
-       XrmOptionDescRec = TXrmOptionDescRec;
-       PXrmOptionDescRec = ^TXrmOptionDescRec;
-
-       Widget = Pointer;
-       WidgetClass = Pointer;
-       ArgList = Pointer;
-       Region = Pointer;
-
-       _FILETIME = packed record
-          dwLowDateTime : DWORD;
-          dwHighDateTime : DWORD;
-       end;
-       TFileTime = _FILETIME;
-       FILETIME = _FILETIME;
-       PFileTime = ^TFileTime;
-
-       tagSTATSTG = packed record
-          pwcsName : POleStr;
-          dwType : Longint;
-          cbSize : Largeint;
-          mtime : TFileTime;
-          ctime : TFileTime;
-          atime : TFileTime;
-          grfMode : Longint;
-          grfLocksSupported : Longint;
-          clsid : TCLSID;
-          grfStateBits : Longint;
-          reserved : Longint;
-       end;
-       TStatStg = tagSTATSTG;
-       STATSTG = TStatStg;
-       PStatStg = ^TStatStg;
+const
+
+  STGTY_STORAGE   = 1;
+  STGTY_STREAM    = 2;
+  STGTY_LOCKBYTES = 3;
+  STGTY_PROPERTY  = 4;
+
+  STREAM_SEEK_SET = 0;
+  STREAM_SEEK_CUR = 1;
+  STREAM_SEEK_END = 2;
+
+  LOCK_WRITE     = 1;
+  LOCK_EXCLUSIVE = 2;
+  LOCK_ONLYONCE  = 4;
+
+  E_FAIL = HRESULT($80004005);
+  
+  STG_E_INVALIDFUNCTION       = HRESULT($80030001);
+  STG_E_FILENOTFOUND          = HRESULT($80030002);
+  STG_E_PATHNOTFOUND          = HRESULT($80030003);
+  STG_E_TOOMANYOPENFILES      = HRESULT($80030004);
+  STG_E_ACCESSDENIED          = HRESULT($80030005);
+  STG_E_INVALIDHANDLE         = HRESULT($80030006);
+  STG_E_INSUFFICIENTMEMORY    = HRESULT($80030008);
+  STG_E_INVALIDPOINTER        = HRESULT($80030009);
+  STG_E_NOMOREFILES           = HRESULT($80030012);
+  STG_E_DISKISWRITEPROTECTED  = HRESULT($80030013);
+  STG_E_SEEKERROR             = HRESULT($80030019);
+  STG_E_WRITEFAULT            = HRESULT($8003001D);
+  STG_E_READFAULT             = HRESULT($8003001E);
+  STG_E_SHAREVIOLATION        = HRESULT($80030020);
+  STG_E_LOCKVIOLATION         = HRESULT($80030021);
+  STG_E_FILEALREADYEXISTS     = HRESULT($80030050);
+  STG_E_INVALIDPARAMETER      = HRESULT($80030057);
+  STG_E_MEDIUMFULL            = HRESULT($80030070);
+  STG_E_PROPSETMISMATCHED     = HRESULT($800300F0);
+  STG_E_ABNORMALAPIEXIT       = HRESULT($800300FA);
+  STG_E_INVALIDHEADER         = HRESULT($800300FB);
+  STG_E_INVALIDNAME           = HRESULT($800300FC);
+  STG_E_UNKNOWN               = HRESULT($800300FD);
+  STG_E_UNIMPLEMENTEDFUNCTION = HRESULT($800300FE);
+  STG_E_INVALIDFLAG           = HRESULT($800300FF);
+  STG_E_INUSE                 = HRESULT($80030100);
+  STG_E_NOTCURRENT            = HRESULT($80030101);
+  STG_E_REVERTED              = HRESULT($80030102);
+  STG_E_CANTSAVE              = HRESULT($80030103);
+  STG_E_OLDFORMAT             = HRESULT($80030104);
+  STG_E_OLDDLL                = HRESULT($80030105);
+  STG_E_SHAREREQUIRED         = HRESULT($80030106);
+  STG_E_EXTANTMARSHALLINGS    = HRESULT($80030108);
+  STG_E_DOCFILECORRUPT        = HRESULT($80030109);
+  STG_E_BADBASEADDRESS        = HRESULT($80030110);
+  STG_E_INCOMPLETE            = HRESULT($80030201);
+  STG_E_TERMINATED            = HRESULT($80030202);
+
+  STG_S_CONVERTED             = $00030200;
+  STG_S_BLOCK                 = $00030201;
+  STG_S_RETRYNOW              = $00030202;
+  STG_S_MONITORING            = $00030203;
+
+  GUID_NULL: TGUID  = '{00000000-0000-0000-0000-000000000000}';
+
+type
+  PCLSID = PGUID;
+  TCLSID = TGUID;
+
+  LARGE_INT = Int64;
+  Largeint = LARGE_INT;
+  PDWord = ^DWord;
+
+  PDisplay = Pointer;
+  PEvent = Pointer;
+
+  TXrmOptionDescRec = record
+  end;
+  XrmOptionDescRec = TXrmOptionDescRec;
+  PXrmOptionDescRec = ^TXrmOptionDescRec;
+
+  Widget = Pointer;
+  WidgetClass = Pointer;
+  ArgList = Pointer;
+  Region = Pointer;
+
+  _FILETIME = packed record
+     dwLowDateTime : DWORD;
+     dwHighDateTime : DWORD;
+  end;
+  TFileTime = _FILETIME;
+  FILETIME = _FILETIME;
+  PFileTime = ^TFileTime;
+
+  tagSTATSTG = packed record
+     pwcsName : POleStr;
+     dwType : Longint;
+     cbSize : Largeint;
+     mtime : TFileTime;
+     ctime : TFileTime;
+     atime : TFileTime;
+     grfMode : Longint;
+     grfLocksSupported : Longint;
+     clsid : TCLSID;
+     grfStateBits : Longint;
+     reserved : Longint;
+  end;
+  TStatStg = tagSTATSTG;
+  STATSTG = TStatStg;
+  PStatStg = ^TStatStg;
 
 {$ifdef HASINTF}
-       IClassFactory = Interface(IUnknown) ['{00000001-0000-0000-C000-000000000046}']
-          Function CreateInstance(Const unkOuter : IUnknown;Const riid : TGUID;Out vObject) : HResult;StdCall;
-          Function LockServer(fLock : LongBool) : HResult;StdCall;
-       End;
-
-       ISequentialStream = interface(IUnknown) ['{0c733a30-2a1c-11ce-ade5-00aa0044773d}']
-          function Read(pv : Pointer;cb : DWord;pcbRead : PDWord) : HRESULT;stdcall;
-          function Write(pv : Pointer;cb : DWord;pcbWritten : PDWord) : HRESULT;stdcall;
-       end;
-
-       IStream = interface(ISequentialStream) ['{0000000C-0000-0000-C000-000000000046}']
-          function Seek(dlibMove : LargeInt; dwOrigin : Longint;
-            out libNewPosition : LargeInt) : HResult;stdcall;
-          function SetSize(libNewSize : LargeInt) : HRESULT;stdcall;
-          function CopyTo(stm: IStream;cb : LargeInt;out cbRead : LargeInt;
-            out cbWritten : LargeInt) : HRESULT;stdcall;
-          function Commit(grfCommitFlags : Longint) : HRESULT;stdcall;
-          function Revert : HRESULT;stdcall;
-          function LockRegion(libOffset : LargeInt;cb : LargeInt;
-            dwLockType : Longint) : HRESULT;stdcall;
-          function UnlockRegion(libOffset : LargeInt;cb : LargeInt;
-            dwLockType : Longint) : HRESULT;stdcall;
-          Function Stat(out statstg : TStatStg;grfStatFlag : Longint) : HRESULT;stdcall;
-          function Clone(out stm : IStream) : HRESULT;stdcall;
-       end;
+  IClassFactory = Interface(IUnknown) ['{00000001-0000-0000-C000-000000000046}']
+     Function CreateInstance(Const unkOuter : IUnknown;Const riid : TGUID;Out vObject) : HResult;StdCall;
+     Function LockServer(fLock : LongBool) : HResult;StdCall;
+  End;
+
+  ISequentialStream = interface(IUnknown) ['{0c733a30-2a1c-11ce-ade5-00aa0044773d}']
+     function Read(pv : Pointer;cb : DWord;pcbRead : PDWord) : HRESULT;stdcall;
+     function Write(pv : Pointer;cb : DWord;pcbWritten : PDWord) : HRESULT;stdcall;
+  end;
+
+  IStream = interface(ISequentialStream) ['{0000000C-0000-0000-C000-000000000046}']
+     function Seek(dlibMove : LargeInt; dwOrigin : Longint;
+       out libNewPosition : LargeInt) : HResult;stdcall;
+     function SetSize(libNewSize : LargeInt) : HRESULT;stdcall;
+     function CopyTo(stm: IStream;cb : LargeInt;out cbRead : LargeInt;
+       out cbWritten : LargeInt) : HRESULT;stdcall;
+     function Commit(grfCommitFlags : Longint) : HRESULT;stdcall;
+     function Revert : HRESULT;stdcall;
+     function LockRegion(libOffset : LargeInt;cb : LargeInt;
+       dwLockType : Longint) : HRESULT;stdcall;
+     function UnlockRegion(libOffset : LargeInt;cb : LargeInt;
+       dwLockType : Longint) : HRESULT;stdcall;
+     Function Stat(out statstg : TStatStg;grfStatFlag : Longint) : HRESULT;stdcall;
+     function Clone(out stm : IStream) : HRESULT;stdcall;
+  end;
 {$endif HASINTF}
 {$endif win32}
 
-    function EqualRect(const r1,r2 : TRect) : Boolean;
-    function Rect(Left,Top,Right,Bottom : Integer) : TRect;
-    function Bounds(ALeft,ATop,AWidth,AHeight : Integer) : TRect;
-    function Point(x,y : Integer) : TPoint;
-    function PtInRect(const Rect : TRect; const p : TPoint) : Boolean;
-    function IntersectRect(var Rect : TRect; const R1,R2 : TRect) : Boolean;
-    function UnionRect(var Rect : TRect; const R1,R2 : TRect) : Boolean;
-    function IsRectEmpty(const Rect : TRect) : Boolean;
-    function OffsetRect(var Rect : TRect;DX : Integer;DY : Integer) : Boolean;
+function EqualRect(const r1,r2 : TRect) : Boolean;
+function Rect(Left,Top,Right,Bottom : Integer) : TRect;
+function Bounds(ALeft,ATop,AWidth,AHeight : Integer) : TRect;
+function Point(x,y : Integer) : TPoint;
+function PtInRect(const Rect : TRect; const p : TPoint) : Boolean;
+function IntersectRect(var Rect : TRect; const R1,R2 : TRect) : Boolean;
+function UnionRect(var Rect : TRect; const R1,R2 : TRect) : Boolean;
+function IsRectEmpty(const Rect : TRect) : Boolean;
+function OffsetRect(var Rect : TRect;DX : Integer;DY : Integer) : Boolean;
+function CenterPoint(const Rect: TRect): TPoint;
 
 {$endif ver1_0}
 
-  implementation
+implementation
 
 {$ifndef ver1_0}
-    function EqualRect(const r1,r2 : TRect) : Boolean;
-      begin
-         EqualRect:=(r1.left=r2.left) and (r1.right=r2.right) and (r1.top=r2.top) and (r1.bottom=r2.bottom);
-      end;
 
-    function Rect(Left,Top,Right,Bottom : Integer) : TRect;
+function EqualRect(const r1,r2 : TRect) : Boolean;
+
+begin
+  EqualRect:=(r1.left=r2.left) and (r1.right=r2.right) and (r1.top=r2.top) and (r1.bottom=r2.bottom);
+end;
+
+
+function Rect(Left,Top,Right,Bottom : Integer) : TRect;
+
+begin
+  Rect.Left:=Left;
+  Rect.Top:=Top;
+  Rect.Right:=Right;
+  Rect.Bottom:=Bottom;
+end;
+
+
+function Bounds(ALeft,ATop,AWidth,AHeight : Integer) : TRect;
+
+begin
+  Bounds.Left:=ALeft;
+  Bounds.Top:=ATop;
+  Bounds.Right:=ALeft+AWidth;
+  Bounds.Bottom:=ATop+AHeight;
+end;
+
+
+function Point(x,y : Integer) : TPoint;
+
+begin
+  Point.x:=x;
+  Point.y:=y;
+end;
+
+function PtInRect(const Rect : TRect;const p : TPoint) : Boolean;
+
+begin
+  PtInRect:=(p.y>=Rect.Top) and 
+            (p.y<Rect.Bottom) and 
+            (p.x>=Rect.Left) and 
+            (p.x<Rect.Right);
+end;
+
+
+function IntersectRect(var Rect : TRect;const R1,R2 : TRect) : Boolean;
+
+begin
+  Rect:=R1;
+  with R2 do
+    begin
+    if Left>R1.Left then
+      Rect.Left:=Left;
+    if Top>R1.Top then
+      Rect.Top:=Top;
+    if Right<R1.Right then
+      Rect.Right:=Right;
+    if Bottom<R1.Bottom then
+      Rect.Bottom:=Bottom;
+    end;
+  if IsRectEmpty(Rect) then
+    begin
+    FillChar(Rect,SizeOf(Rect),0);
+    IntersectRect:=false;
+    end
+  else
+    IntersectRect:=true;
+end;
+
+function UnionRect(var Rect : TRect;const R1,R2 : TRect) : Boolean;
+begin
+  Rect:=R1;
+  with R2 do
+    begin
+    if Left<R1.Left then
+      Rect.Left:=Left;
+    if Top<R1.Top then
+      Rect.Top:=Top;
+    if Right>R1.Right then
+      Rect.Right:=Right;
+    if Bottom>R1.Bottom then
+      Rect.Bottom:=Bottom;
+    end;
+  if IsRectEmpty(Rect) then
+    begin
+    FillChar(Rect,SizeOf(Rect),0);
+    UnionRect:=false;
+    end
+  else
+    UnionRect:=true;
+end;
+
+function IsRectEmpty(const Rect : TRect) : Boolean;
+begin
+  IsRectEmpty:=(Rect.Right<=Rect.Left) or (Rect.Bottom<=Rect.Top);
+end;
+
+function OffsetRect(var Rect : TRect;DX : Integer;DY : Integer) : Boolean;
+begin
+  if assigned(@Rect) then
+    begin
+    with Rect do
       begin
-         Rect.Left:=Left;
-         Rect.Top:=Top;
-         Rect.Right:=Right;
-         Rect.Bottom:=Bottom;
+      inc(Left,dx);
+      inc(Top,dy);
+      inc(Right,dx);
+      inc(Bottom,dy);
       end;
+    OffsetRect:=true;
+    end
+  else
+    OffsetRect:=false;
+end;
 
-    function Bounds(ALeft,ATop,AWidth,AHeight : Integer) : TRect;
-      begin
-         Bounds.Left:=ALeft;
-         Bounds.Top:=ATop;
-         Bounds.Right:=ALeft+AWidth;
-         Bounds.Bottom:=ATop+AHeight;
-      end;
+function CenterPoint(const Rect: TRect): TPoint;
 
-    function Point(x,y : Integer) : TPoint;
-      begin
-         Point.x:=x;
-         Point.y:=y;
-      end;
+begin
+  With Rect do
+    begin
+    Result.X:=(Left+Right) div 2;
+    Result.Y:=(Top+Bottom) div 2;
+    end;
+end;
 
-    function PtInRect(const Rect : TRect;const p : TPoint) : Boolean;
-      begin
-         PtInRect:=(p.y>=Rect.Top) and (p.y<Rect.Bottom) and (p.x>=Rect.Left) and (p.x<Rect.Right);
-      end;
-
-    function IntersectRect(var Rect : TRect;const R1,R2 : TRect) : Boolean;
-      begin
-         Rect:=R1;
-         with R2 do
-           begin
-              if Left>R1.Left then
-                Rect.Left:=Left;
-              if Top>R1.Top then
-                Rect.Top:=Top;
-              if Right<R1.Right then
-                Rect.Right:=Right;
-              if Bottom<R1.Bottom then
-                Rect.Bottom:=Bottom;
-           end;
-        if IsRectEmpty(Rect) then
-          begin
-             FillChar(Rect,SizeOf(Rect),0);
-             IntersectRect:=false;
-          end
-        else
-          IntersectRect:=true;
-      end;
-
-    function UnionRect(var Rect : TRect;const R1,R2 : TRect) : Boolean;
-      begin
-         Rect:=R1;
-         with R2 do
-           begin
-              if Left<R1.Left then
-                Rect.Left:=Left;
-              if Top<R1.Top then
-                Rect.Top:=Top;
-              if Right>R1.Right then
-                Rect.Right:=Right;
-              if Bottom>R1.Bottom then
-                Rect.Bottom:=Bottom;
-           end;
-        if IsRectEmpty(Rect) then
-          begin
-             FillChar(Rect,SizeOf(Rect),0);
-             UnionRect:=false;
-          end
-        else
-          UnionRect:=true;
-     end;
-
-    function IsRectEmpty(const Rect : TRect) : Boolean;
-      begin
-         IsRectEmpty:=(Rect.Right<=Rect.Left) or (Rect.Bottom<=Rect.Top);
-      end;
-
-    function OffsetRect(var Rect : TRect;DX : Integer;DY : Integer) : Boolean;
-      begin
-         if assigned(@Rect) then
-           begin
-              with Rect do
-                begin
-                   inc(Left,dx);
-                   inc(Top,dy);
-                   inc(Right,dx);
-                   inc(Bottom,dy);
-                end;
-              OffsetRect:=true;
-           end
-         else
-           OffsetRect:=false;
-      end;
 
 {$endif ver1_0}
 
 end.
 {
   $Log$
-  Revision 1.5  2003-10-05 19:10:03  florian
+  Revision 1.6  2004-01-10 19:00:20  michael
+  + Compatibility checks and code reformatting
+
+  Revision 1.5  2003/10/05 19:10:03  florian
     * fixed some delphi compatibilty issues
 
   Revision 1.4  2003/04/24 11:09:36  florian