mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-03 01:18:15 +02:00
156 lines
4.2 KiB
PHP
156 lines
4.2 KiB
PHP
{******************************************************************************
|
|
TCustomRadioBox
|
|
******************************************************************************
|
|
|
|
*****************************************************************************
|
|
* *
|
|
* This file is part of the Lazarus Component Library (LCL) *
|
|
* *
|
|
* See the file COPYING.LCL, included in this distribution, *
|
|
* for details about the copyright. *
|
|
* *
|
|
* This program is distributed in the hope that it will be useful, *
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
|
* *
|
|
*****************************************************************************
|
|
}
|
|
{
|
|
|
|
Delphi compatibility:
|
|
|
|
- TPanel is compatible with Delphi implementation
|
|
}
|
|
|
|
{------------------------------------------------------------------------------
|
|
Method: TCustomRadioGroup.Create
|
|
Params: AOwner: the owner of the class
|
|
Returns: Nothing
|
|
|
|
Constructor for the radiogroup
|
|
------------------------------------------------------------------------------}
|
|
constructor TCustomPanel.Create (AOwner : TComponent);
|
|
begin
|
|
inherited Create (AOwner);
|
|
FCompStyle:= csPanel;
|
|
ControlStyle := ControlStyle + [csAcceptsControls, csCaptureMouse,
|
|
csClickEvents, csSetCaption, csOpaque, csDoubleClicks, csReplicatable,
|
|
csNoFocus];
|
|
FBevelOuter := bvRaised;
|
|
FBevelInner := bvNone;
|
|
FBevelWidth := 1;
|
|
FAlignment := taCenter;
|
|
Height := 41;
|
|
Width := 185;
|
|
ParentColor := True;
|
|
end;
|
|
|
|
procedure TCustomPanel.SetAlignment(const Value: TAlignment);
|
|
begin
|
|
if FAlignment <> Value then begin
|
|
FAlignment := Value;
|
|
Invalidate;
|
|
end;
|
|
end;
|
|
|
|
procedure TCustomPanel.SetBevelWidth(const Value: TBevelWidth);
|
|
begin
|
|
if FBevelWidth <> Value then begin
|
|
FBevelWidth := Value;
|
|
Invalidate;
|
|
end;
|
|
end;
|
|
|
|
procedure TCustomPanel.SetBevelInner(const Value: TPanelBevel);
|
|
begin
|
|
if BevelInner <> Value then begin
|
|
FBevelInner := Value;
|
|
Invalidate;
|
|
end;
|
|
end;
|
|
|
|
procedure TCustomPanel.SetBevelOuter(const Value: TPanelBevel);
|
|
begin
|
|
if BevelOuter <> Value then begin
|
|
FBevelOuter := Value;
|
|
Invalidate;
|
|
end;
|
|
end;
|
|
|
|
procedure TCustomPanel.SetBorderWidth(const Value: TBorderWidth);
|
|
begin
|
|
if FBorderWidth <> Value then begin
|
|
FBorderWidth := Value;
|
|
Realign;
|
|
Invalidate;
|
|
end;
|
|
end;
|
|
|
|
procedure TCustomPanel.Paint;
|
|
var
|
|
ARect: TRect;
|
|
TS : TTextStyle;
|
|
begin
|
|
ARect := GetClientRect;
|
|
if BorderStyle = bsSingle then begin
|
|
Canvas.Rectangle(ARect);
|
|
InflateRect(ARect, -1, -1);
|
|
end;
|
|
|
|
if BevelOuter <> bvNone then
|
|
Canvas.Frame3d(ARect, BevelWidth, BevelOuter);
|
|
|
|
if BevelInner <> bvNone then begin
|
|
if BorderWidth > 0 then InflateRect(ARect, -BorderWidth, -BorderWidth);
|
|
Canvas.Frame3d(ARect, BevelWidth, BevelInner);
|
|
end;
|
|
|
|
if Caption <> '' then begin
|
|
TS.Alignment:= Alignment;
|
|
TS.Layout:= tlCenter;
|
|
TS.Opaque:= false;
|
|
TS.Clipping:= false;
|
|
Canvas.TextRect(ARect, 0, 0, Caption, TS);
|
|
end;
|
|
end;
|
|
|
|
procedure TCustomPanel.AdjustClientRect(var Rect: TRect);
|
|
var
|
|
BevelSize: Integer;
|
|
begin
|
|
inherited AdjustClientRect(Rect);
|
|
InflateRect(Rect, -BorderWidth, -BorderWidth);
|
|
BevelSize := 0;
|
|
if BevelOuter <> bvNone then Inc(BevelSize, BevelWidth);
|
|
if BevelInner <> bvNone then Inc(BevelSize, BevelWidth);
|
|
InflateRect(Rect, -BevelSize, -BevelSize);
|
|
end;
|
|
|
|
procedure TCustomPanel.SetBorderStyle(const Value: TControlBorderStyle);
|
|
begin
|
|
if FBorderStyle <> Value then begin
|
|
FBorderStyle := Value;
|
|
Invalidate;
|
|
end;
|
|
end;
|
|
|
|
procedure TCustomPanel.Invalidate;
|
|
begin
|
|
inherited;
|
|
// InvalidateRect(ClientRect, True);
|
|
end;
|
|
|
|
function TCustomPanel.GetText: TCaption;
|
|
begin
|
|
Result := FCaption;
|
|
end;
|
|
|
|
procedure TCustomPanel.SetText(const Value: TCaption);
|
|
begin
|
|
if Caption <> Value then begin
|
|
FCaption := Value;
|
|
// TextChanged;
|
|
Invalidate;
|
|
end;
|
|
end;
|