From: Florent O. <ou...@us...> - 2005-04-03 14:53:22
|
Update of /cvsroot/jcl/jcl/source/prototypes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14444/source/prototypes Modified Files: _Graphics.pas Log Message: Donation of Dejoy, modifications of prototypes Index: _Graphics.pas =================================================================== RCS file: /cvsroot/jcl/jcl/source/prototypes/_Graphics.pas,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** _Graphics.pas 14 Mar 2005 08:46:54 -0000 1.22 --- _Graphics.pas 3 Apr 2005 14:53:11 -0000 1.23 *************** *** 33,36 **** --- 33,37 ---- { Robert Marquardt (marquardt) } { Robert Rossmair (rrossmair) } + { Dejoy Den (dejoy) } { } {**************************************************************************************************} *************** *** 60,64 **** Types, QGraphics, JclQGraphUtils, {$ELSE} ! Graphics, JclGraphUtils, {$ENDIF VisualCLX} JclBase; --- 61,65 ---- Types, QGraphics, JclQGraphUtils, {$ELSE} ! Graphics, JclGraphUtils, Controls, {$ENDIF VisualCLX} JclBase; *************** *** 183,186 **** --- 184,189 ---- constructor CreatePath(Canvas: TCanvas); constructor CreateRegionInfo(RegionInfo: TJclRegionInfo); + constructor CreateMapWindow(InitialRegion: TJclRegion; hWndFrom, hWndTo: HWND); overload; + constructor CreateMapWindow(InitialRegion: TJclRegion; ControlFrom, ControlTo: TWinControl); overload; destructor Destroy; override; procedure Clip(Canvas: TCanvas); *************** *** 515,518 **** --- 518,522 ---- procedure ScreenShot(bm: TBitmap; Left, Top, Width, Height: Integer; Window: HWND = HWND_DESKTOP); overload; procedure ScreenShot(bm: TBitmap; IncludeTaskBar: Boolean = True); overload; + function MapWindowRect(hWndFrom,hWndTo:HWND;ARect:TRect):TRect; {$ENDIF VCL} *************** *** 2106,2109 **** --- 2110,2119 ---- ScreenShot(bm, R.Left, R.Top, R.Right, R.Bottom, HWND_DESKTOP); end; + + function MapWindowRect(hWndFrom,hWndTo:HWND;ARect:TRect):TRect; + begin + MapWindowPoints(hWndFrom,hWndTo,ARect,2); + Result := ARect; + end; {$ENDIF VCL} *************** *** 2300,2303 **** --- 2310,2349 ---- end; + constructor TJclRegion.CreateMapWindow(InitialRegion: TJclRegion; hWndFrom, hWndTo: HWND); + var + RectRegion: HRGN; + CurrentRegionInfo : TJclRegionInfo; + SimpleRect: TRect; + Index:integer; + begin + Create(CreateRectRgn(0, 0, 0, 0), True); + if (hWndFrom <> 0) or (hWndTo <> 0 ) then + begin + CurrentRegionInfo := InitialRegion.GetRegionInfo; + try + for Index := 0 to CurrentRegionInfo.Count-1 do + begin + SimpleRect := CurrentRegionInfo.Rectangles[Index]; + SimpleRect := MapWindowRect(hWndFrom,hWndTo,SimpleRect); + RectRegion := CreateRectRgnIndirect(SimpleRect); + if RectRegion <> 0 then + begin + CombineRgn(Handle, Handle, RectRegion, RGN_OR); + DeleteObject(RectRegion); + end; + end; + finally + CurrentRegionInfo.Free; + GetBox; + end; + end; + end; + + constructor TJclRegion.CreateMapWindow(InitialRegion: TJclRegion; + ControlFrom, ControlTo: TWinControl); + begin + CreateMapWindow(InitialRegion,ControlFrom.Handle,ControlTo.Handle); + end; + destructor TJclRegion.Destroy; begin *************** *** 5640,5643 **** --- 5686,5692 ---- {$IFDEF PROTOTYPE} // $Log$ + // Revision 1.23 2005/04/03 14:53:11 outchy + // Donation of Dejoy, modifications of prototypes + // // Revision 1.22 2005/03/14 08:46:54 rrossmair // - check-in in preparation for release 1.95 |