use Reference.Handle of gdi objects instead of Handle since Handle is deprecated now

git-svn-id: trunk@13291 -
This commit is contained in:
paul 2007-12-12 06:01:02 +00:00
parent 7bc0a3cc0f
commit 2032520bd1

View File

@ -125,17 +125,18 @@ end;
------------------------------------------------------------------------------} ------------------------------------------------------------------------------}
procedure TCanvas.CreateBrush; procedure TCanvas.CreateBrush;
var OldHandle: HBRUSH; var
OldHandle: HBRUSH;
begin begin
//DebugLn('[TCanvas.CreateBrush] ',Classname,' Self=',DbgS(Self) //DebugLn('[TCanvas.CreateBrush] ',Classname,' Self=',DbgS(Self)
// ,' Brush=',DbgS(Brush)); // ,' Brush=',DbgS(Brush));
OldHandle:=SelectObject(FHandle, Brush.Handle); OldHandle := SelectObject(FHandle, Brush.Reference.Handle);
//debugln('TCanvas.CreateBrush ',ClassName,' Self=',DbgS(Self),' OldHandle=',DbgS(OldHandle),8),' NewHandle=',DbgS(Brush.Handle),' FSavedBrushHandle=',DbgS(Cardinal(FSavedBrushHandle)); //debugln('TCanvas.CreateBrush ',ClassName,' Self=',DbgS(Self),' OldHandle=',DbgS(OldHandle),8),' NewHandle=',DbgS(Brush.Handle),' FSavedBrushHandle=',DbgS(Cardinal(FSavedBrushHandle));
if (OldHandle<>Brush.Handle) and (FSavedBrushHandle=0) then if (OldHandle <> Brush.Reference.Handle) and (FSavedBrushHandle=0) then
FSavedBrushHandle:=OldHandle; FSavedBrushHandle := OldHandle;
Include(FState, csBrushValid); Include(FState, csBrushValid);
SetBkColor(FHandle, Brush.Color); SetBkColor(FHandle, Brush.Color);
if Brush.Style=bsSolid then if Brush.Style = bsSolid then
SetBkMode(FHandle, OPAQUE) SetBkMode(FHandle, OPAQUE)
else else
SetBkMode(FHandle, TRANSPARENT); SetBkMode(FHandle, TRANSPARENT);
@ -148,23 +149,36 @@ end;
------------------------------------------------------------------------------} ------------------------------------------------------------------------------}
procedure TCanvas.CreatePen; procedure TCanvas.CreatePen;
var OldHandle: HPEN; var
const PenModes:Array[TPenMode] of Integer = OldHandle: HPEN;
( R2_BLACK, R2_WHITE, R2_NOP, R2_NOT, R2_COPYPEN, R2_NOTCOPYPEN, R2_MERGEPENNOT,
R2_MASKPENNOT, R2_MERGENOTPEN, R2_MASKNOTPEN, R2_MERGEPEN, R2_NOTMERGEPEN, const
R2_MASKPEN, R2_NOTMASKPEN, R2_XORPEN, R2_NOTXORPEN ); PenModes: array[TPenMode] of Integer =
{ (
TPenMode = (pmBlack, pmWhite, pmNop, pmNot, pmCopy, pmNotCopy, pmMergePenNot, {pmBlack } R2_BLACK,
pmMaskPenNot, pmMergeNotPen, pmMaskNotPen, pmMerge,pmNotMerge, {pmWhite } R2_WHITE,
pmMask, pmNotMask, pmXor, pmNotXor {pmNop } R2_NOP,
} {pmNot } R2_NOT,
{pmCopy } R2_COPYPEN,
{pmNotCopy } R2_NOTCOPYPEN,
{pmMergePenNot} R2_MERGEPENNOT,
{pmMaskPenNot } R2_MASKPENNOT,
{pmMergeNotPen} R2_MERGENOTPEN,
{pmMaskNotPen } R2_MASKNOTPEN,
{pmMerge } R2_MERGEPEN,
{pmNotMerge } R2_NOTMERGEPEN,
{pmMask } R2_MASKPEN,
{pmNotMask } R2_NOTMASKPEN,
{pmXor } R2_XORPEN,
{pmNotXor } R2_NOTXORPEN
);
begin begin
//DebugLn('[TCanvas.CreatePen] ',Classname,' Self=',DbgS(Self) //DebugLn('[TCanvas.CreatePen] ',Classname,' Self=',DbgS(Self)
// ,' Pen=',DbgS(Pen)); // ,' Pen=',DbgS(Pen));
OldHandle:=SelectObject(FHandle, Pen.Handle); OldHandle := SelectObject(FHandle, Pen.Reference.Handle);
if (OldHandle<>Pen.Handle) and (FSavedPenHandle=0) then if (OldHandle <> Pen.Reference.Handle) and (FSavedPenHandle=0) then
FSavedPenHandle:=OldHandle; FSavedPenHandle := OldHandle;
MoveTo(PenPos.X,PenPos.Y); MoveTo(PenPos.X, PenPos.Y);
Include(FState, csPenValid); Include(FState, csPenValid);
SetROP2(FHandle, PenModes[Pen.Mode]); SetROP2(FHandle, PenModes[Pen.Mode]);
end; end;
@ -176,15 +190,16 @@ end;
------------------------------------------------------------------------------} ------------------------------------------------------------------------------}
procedure TCanvas.CreateFont; procedure TCanvas.CreateFont;
var OldHandle: HFONT; var
OldHandle: HFONT;
begin begin
// The first time the font handle is selected, the default font handle // The first time the font handle is selected, the default font handle
// is returned. Save this font handle to restore it later in DeselectHandles. // is returned. Save this font handle to restore it later in DeselectHandles.
// The TFont will call DeleteObject itself, so we never need to call it. // The TFont will call DeleteObject itself, so we never need to call it.
OldHandle:=SelectObject(FHandle, Font.Handle); OldHandle := SelectObject(FHandle, Font.Reference.Handle);
//DebugLn(['TCanvas.CreateFont OldHandle=',dbghex(OldHandle),' Font.Handle=',dbghex(Font.Handle)]); //DebugLn(['TCanvas.CreateFont OldHandle=',dbghex(OldHandle),' Font.Handle=',dbghex(Font.Handle)]);
if (OldHandle<>Font.Handle) and (FSavedFontHandle=0) then if (OldHandle <> Font.Reference.Handle) and (FSavedFontHandle=0) then
FSavedFontHandle:=OldHandle; FSavedFontHandle := OldHandle;
Include(FState, csFontValid); Include(FState, csFontValid);
SetTextColor(FHandle, Font.Color); SetTextColor(FHandle, Font.Color);
end; end;
@ -193,11 +208,12 @@ end;
procedure TCanvas.CreateRegion; procedure TCanvas.CreateRegion;
------------------------------------------------------------------------------} ------------------------------------------------------------------------------}
procedure TCanvas.CreateRegion; procedure TCanvas.CreateRegion;
var OldHandle: HRGN; var
OldHandle: HRGN;
begin begin
OldHandle:=SelectObject(FHandle, Region.Handle); OldHandle := SelectObject(FHandle, Region.Reference.Handle);
if (OldHandle<>Region.Handle) and (FSavedRegionHandle=0) then if (OldHandle <> Region.Reference.Handle) and (FSavedRegionHandle=0) then
FSavedRegionHandle:=OldHandle; FSavedRegionHandle := OldHandle;
Include(FState, csRegionValid); Include(FState, csRegionValid);
end; end;
@ -834,7 +850,7 @@ procedure TCanvas.FillRect(const ARect : TRect);
begin begin
Changing; Changing;
RequiredState([csHandleValid, csBrushValid]); RequiredState([csHandleValid, csBrushValid]);
LCLIntf.FillRect(FHandle, ARect, Brush.Handle); LCLIntf.FillRect(FHandle, ARect, Brush.Reference.Handle);
Changed; Changed;
end; end;
@ -858,7 +874,7 @@ procedure TCanvas.FloodFill(X, Y: Integer; FillColor: TColor;
begin begin
Changing; Changing;
RequiredState([csHandleValid, csBrushValid]); RequiredState([csHandleValid, csBrushValid]);
LCLIntf.FloodFill(FHandle, X, Y, FillColor, FillStyle, Brush.Handle); LCLIntf.FloodFill(FHandle, X, Y, FillColor, FillStyle, Brush.Reference.Handle);
Changed; Changed;
end; end;