home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 October / Chip_2001-10_cd1.bin / zkuste / delphi / kolekce / d6 / FRCLX.ZIP / SOURCE / FR_API.pas < prev    next >
Pascal/Delphi Source File  |  2001-07-05  |  3KB  |  126 lines

  1.  
  2. {******************************************}
  3. {                                          }
  4. {           FastReport CLX v2.4            }
  5. {           WinAPI stuff wrapper           }
  6. {                                          }
  7. { Copyright (c) 1998-2001 by Tzyganenko A. }
  8. {                                          }
  9. {******************************************}
  10.  
  11.  
  12. unit FR_API;
  13.  
  14. {$I FR.inc}
  15.  
  16. interface
  17.  
  18. uses Qt, Types;
  19.  
  20. type
  21.   frHRGN = QRegionH;
  22.   frHDC = QPainterH;
  23.   frHBrush = QBrushH;
  24.  
  25. const
  26.   frNULLREGION = 0;
  27.   frRGN_AND = 1;
  28.   frRGN_DIFF = 2;
  29.   frRGN_OR = 3;
  30.  
  31.  
  32. function frCreateRectRgn(p1, p2, p3, p4: Integer): frHRGN;
  33. procedure frCombineRgn(var p1, p2, p3: frHRGN);
  34. function frPtInRegion(p1: frHRGN; p2, p3: Integer): Boolean;
  35. function frRectVisible(DC: frHDC; ARect: TRect): Boolean;
  36. procedure frSetTextCharacterExtra(DC: frHDC; p2: Integer);
  37. procedure frDeleteRgn(p1: frHRGN);
  38. procedure frGetClipRgn(DC: frHDC; var p2: frHRGN);
  39. procedure frSetClipRgn(DC: frHDC; p2: frHRGN);
  40. procedure frExcludeClipRect(DC: frHDC; p2, p3, p4, p5: Integer);
  41. procedure frExcludeClipRgn(DC: frHDC; p2: frHRGN);
  42.  
  43. implementation
  44.  
  45.  
  46. function frCreateRectRgn(p1, p2, p3, p4: Integer): frHRGN;
  47. begin
  48.   Result := QRegion_create(p1, p2, p3-p1, p4-p2, QRegionRegionType_Rectangle);
  49. end;
  50.  
  51. procedure frDeleteRgn(p1: frHRGN);
  52. begin
  53.   QRegion_destroy(p1);
  54. end;
  55.  
  56. procedure frGetClipRgn(DC: frHDC; var p2: frHRGN);
  57. begin
  58.   p2 := QPainter_clipRegion(DC);
  59. end;
  60.  
  61. procedure frSetClipRgn(DC: frHDC; p2: frHRGN);
  62. begin
  63.   QPainter_setClipRegion(DC, p2);
  64. end;
  65.  
  66. procedure frExcludeClipRect(DC: frHDC; p2, p3, p4, p5: Integer);
  67. var
  68.   r1, r2, r3: frHRgn;
  69. begin
  70.   r1 := QRegion_create;
  71.   r2 := frCreateRectRgn(p2, p3, p4, p5);
  72.   r3 := QRegion_create;
  73.   frGetClipRgn(DC, r1);
  74.   QRegion_subtract(r1, r3, r2);
  75.   frSetClipRgn(DC, r3);
  76.   frDeleteRgn(r2);
  77.   frDeleteRgn(r3);
  78. end;
  79.  
  80. procedure frExcludeClipRgn(DC: frHDC; p2: frHRGN);
  81. var
  82.   r1, r3: frHRgn;
  83. begin
  84.   r1 := QRegion_create;
  85.   r3 := QRegion_create;
  86.   frGetClipRgn(DC, r1);
  87.   QRegion_subtract(r1, r3, p2);
  88.   frSetClipRgn(DC, r3);
  89.   frDeleteRgn(r3);
  90. end;
  91.  
  92. procedure frCombineRgn(var p1, p2, p3: frHRGN);
  93. begin
  94.   QRegion_unite(p1, p2, p3);
  95. end;
  96.  
  97. function frPtInRegion(p1: frHRGN; p2, p3: Integer): Boolean;
  98. var
  99.   p: TPoint;
  100.   pp: PPoint;
  101. begin
  102.   p := Point(p2, p3);
  103.   pp := @p;
  104.   Result := QRegion_contains(p1, pp);
  105. end;
  106.  
  107. function frRectVisible(DC: frHDC; ARect: TRect): Boolean;
  108. var
  109.   r: frHRGN;
  110.   p: PRect;
  111. begin
  112.   p := @ARect;
  113.   r := QRegion_create;
  114.   frGetClipRgn(DC, r);
  115.   Result := QRegion_contains(r, p);
  116. //  frDeleteRgn(r);
  117. end;
  118.  
  119. procedure frSetTextCharacterExtra(DC: frHDC; p2: Integer);
  120. begin
  121. //  SetTextCharacterExtra(DC, p2);
  122. end;
  123.  
  124.  
  125.  
  126. end.