mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-01 13:00:25 +02:00
implemented TBitmap.LoadFromDevice
git-svn-id: trunk@5966 -
This commit is contained in:
parent
a173ca36a9
commit
8a5b39971b
@ -1065,6 +1065,7 @@ type
|
|||||||
function PaletteAllocated: boolean;
|
function PaletteAllocated: boolean;
|
||||||
procedure CreateFromBitmapHandles(SrcBitmap, SrcMaskBitmap: HBitmap;
|
procedure CreateFromBitmapHandles(SrcBitmap, SrcMaskBitmap: HBitmap;
|
||||||
const SrcRect: TRect);
|
const SrcRect: TRect);
|
||||||
|
procedure LoadFromDevice(DC: HDC); virtual;
|
||||||
function LazarusResourceTypeValid(const ResourceType: string): boolean; virtual;
|
function LazarusResourceTypeValid(const ResourceType: string): boolean; virtual;
|
||||||
procedure LoadFromStream(Stream: TStream); override;
|
procedure LoadFromStream(Stream: TStream); override;
|
||||||
procedure LoadFromLazarusResource(const ResName: String); override;
|
procedure LoadFromLazarusResource(const ResName: String); override;
|
||||||
@ -1746,6 +1747,9 @@ end.
|
|||||||
{ =============================================================================
|
{ =============================================================================
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.146 2004/09/11 10:19:07 mattias
|
||||||
|
implemented TBitmap.LoadFromDevice
|
||||||
|
|
||||||
Revision 1.145 2004/09/04 22:24:16 mattias
|
Revision 1.145 2004/09/04 22:24:16 mattias
|
||||||
added default values for compiler skip options and improved many parts of synedit for UTF8
|
added default values for compiler skip options and improved many parts of synedit for UTF8
|
||||||
|
|
||||||
|
@ -188,17 +188,50 @@ var
|
|||||||
NewRawImage: TRawImage;
|
NewRawImage: TRawImage;
|
||||||
ImgHandle, ImgMaskHandle: HBitmap;
|
ImgHandle, ImgMaskHandle: HBitmap;
|
||||||
begin
|
begin
|
||||||
DebugLn('TBitmap.CreateFromBitmapHandles A SrcRect=',dbgs(SrcRect));
|
//DebugLn('TBitmap.CreateFromBitmapHandles A SrcRect=',dbgs(SrcRect));
|
||||||
if not GetRawImageFromBitmap(SrcBitmap,SrcMaskBitmap,SrcRect,NewRawImage) then
|
if not GetRawImageFromBitmap(SrcBitmap,SrcMaskBitmap,SrcRect,NewRawImage) then
|
||||||
raise EInvalidGraphicOperation.Create('TBitmap.CreateFromBitmapHandles Get RawImage');
|
raise EInvalidGraphicOperation.Create('TBitmap.CreateFromBitmapHandles Get RawImage');
|
||||||
|
ImgHandle:=0;
|
||||||
|
ImgMaskHandle:=0;
|
||||||
try
|
try
|
||||||
DebugLn('TBitmap.CreateFromBitmapHandles B SrRect=',dbgs(SrcRect));
|
//DebugLn('TBitmap.CreateFromBitmapHandles B SrRect=',dbgs(SrcRect));
|
||||||
if not CreateBitmapFromRawImage(NewRawImage,ImgHandle,ImgMaskHandle,false) then
|
if not CreateBitmapFromRawImage(NewRawImage,ImgHandle,ImgMaskHandle,false) then
|
||||||
raise EInvalidGraphicOperation.Create('TBitmap.CreateFromBitmapHandles Create bitmaps');
|
raise EInvalidGraphicOperation.Create('TBitmap.CreateFromBitmapHandles Create bitmaps');
|
||||||
Handle:=ImgHandle;
|
Handle:=ImgHandle;
|
||||||
|
ImgHandle:=0;
|
||||||
MaskHandle:=ImgMaskHandle;
|
MaskHandle:=ImgMaskHandle;
|
||||||
|
ImgMaskHandle:=0;
|
||||||
finally
|
finally
|
||||||
FreeRawImageData(@NewRawImage);
|
FreeRawImageData(@NewRawImage);
|
||||||
|
if ImgHandle<>0 then DeleteObject(ImgHandle);
|
||||||
|
if ImgMaskHandle<>0 then DeleteObject(ImgMaskHandle);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TBitmap.LoadFromDevice(DC: HDC);
|
||||||
|
var
|
||||||
|
IntfImg: TLazIntfImage;
|
||||||
|
ImgHandle, ImgMaskHandle: HBitmap;
|
||||||
|
begin
|
||||||
|
ImgHandle:=0;
|
||||||
|
ImgMaskHandle:=0;
|
||||||
|
IntfImg:=nil;
|
||||||
|
try
|
||||||
|
// create the interface image
|
||||||
|
IntfImg:=TLazIntfImage.Create(0,0);
|
||||||
|
// get a snapshot
|
||||||
|
IntfImg.LoadFromDevice(DC);
|
||||||
|
// create HBitmap
|
||||||
|
IntfImg.CreateBitmap(ImgHandle,ImgMaskHandle,false);
|
||||||
|
// feed HBitmap into a TBitmap
|
||||||
|
Handle:=ImgHandle;
|
||||||
|
ImgHandle:=0;
|
||||||
|
MaskHandle:=ImgMaskHandle;
|
||||||
|
ImgMaskHandle:=0;
|
||||||
|
finally
|
||||||
|
IntfImg.Free;
|
||||||
|
if ImgHandle<>0 then DeleteObject(ImgHandle);
|
||||||
|
if ImgMaskHandle<>0 then DeleteObject(ImgMaskHandle);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1201,6 +1234,9 @@ end;
|
|||||||
{ =============================================================================
|
{ =============================================================================
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.89 2004/09/11 10:19:07 mattias
|
||||||
|
implemented TBitmap.LoadFromDevice
|
||||||
|
|
||||||
Revision 1.88 2004/05/14 14:32:49 mattias
|
Revision 1.88 2004/05/14 14:32:49 mattias
|
||||||
fix for fpc 1.0.10
|
fix for fpc 1.0.10
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user