mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-11 13:56:05 +02:00
LCL: Implemented TCanvas.Frame3D with Delphi compatible parameter signature + a wrapper func. Patch by Stephano, issue #8328
git-svn-id: trunk@30305 -
This commit is contained in:
parent
09bbd30552
commit
6e67aa98e8
@ -1311,6 +1311,9 @@ const
|
||||
TCN_SELCHANGE = TCN_FIRST - 1;
|
||||
TCN_SELCHANGING = TCN_FIRST - 2;
|
||||
|
||||
procedure Frame3D(ACanvas: TCanvas; var ARect: TRect;
|
||||
TopColor, BottomColor: TColor; const FrameWidth: integer);
|
||||
|
||||
procedure Register;
|
||||
|
||||
implementation
|
||||
@ -1321,6 +1324,13 @@ uses
|
||||
|
||||
{.$define INSTALL_TUNTABBEDNOTEBOOK}
|
||||
|
||||
// Wrapper function for TCanvas.Frame3D.
|
||||
procedure Frame3D(ACanvas: TCanvas; var ARect: TRect;
|
||||
TopColor, BottomColor: TColor; const FrameWidth: integer);
|
||||
begin
|
||||
ACanvas.Frame3D(ARect, TopColor, BottomColor, FrameWidth);
|
||||
end;
|
||||
|
||||
procedure Register;
|
||||
begin
|
||||
RegisterComponents('Standard',[TRadioGroup,TCheckGroup,TPanel]);
|
||||
|
@ -1104,6 +1104,8 @@ type
|
||||
FillStyle: TFillStyle); virtual;
|
||||
procedure Frame3d(var ARect: TRect; const FrameWidth: integer;
|
||||
const Style: TGraphicsBevelCut); virtual;
|
||||
procedure Frame3D(var ARect: TRect; TopColor, BottomColor: TColor;
|
||||
const FrameWidth: integer); overload;
|
||||
procedure Frame(const ARect: TRect); virtual; // border using pen
|
||||
procedure Frame(X1,Y1,X2,Y2: Integer); // border using pen
|
||||
procedure FrameRect(const ARect: TRect); virtual; // border using brush
|
||||
|
@ -970,6 +970,45 @@ begin
|
||||
Changed;
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Method: TCanvas.Frame3D
|
||||
Params: Rect
|
||||
Returns: the inflated rectangle (the inner rectangle without the frame)
|
||||
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TCanvas.Frame3D(var ARect: TRect; TopColor, BottomColor: TColor;
|
||||
const FrameWidth: integer);
|
||||
var
|
||||
Delta, W, ii : Integer;
|
||||
begin
|
||||
if ARect.Bottom-ARect.Top > ARect.Right-ARect.Left
|
||||
then
|
||||
W := ARect.Right-ARect.Left+1
|
||||
else
|
||||
W := ARect.Bottom-ARect.Top+1;
|
||||
|
||||
if FrameWidth > W then
|
||||
W := W-1
|
||||
else
|
||||
W := FrameWidth;
|
||||
|
||||
for ii := 1 to W do
|
||||
begin
|
||||
Pen.Color := TopColor;
|
||||
MoveTo(ARect.Left, ARect.Bottom-1);
|
||||
LineTo(ARect.Left, ARect.Top);
|
||||
LineTo(ARect.Right-1, ARect.Top);
|
||||
Pen.Color := BottomColor;
|
||||
LineTo(ARect.Right-1, ARect.Bottom-1);
|
||||
LineTo(ARect.Left, ARect.Bottom-1);
|
||||
|
||||
Inc(ARect.Left);
|
||||
Inc(ARect.Top);
|
||||
Dec(ARect.Right);
|
||||
Dec(ARect.Bottom);
|
||||
end;
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
procedure TCanvas.Frame(const ARect: TRect);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user