📄 dxbutton.pas
字号:
begin
FBackgroundTo := Value;
TdxButton(FOwner).HookResized;
end;
end;
{-----------------------------------------------------------------------------
Procedure: TdxColors.SetBorderEdges
Author: mh
Date: 30-Apr-2002
Arguments: Value: TColor
Result: None
-----------------------------------------------------------------------------}
procedure TdxColors.SetBorderEdges(Value: TColor);
begin
if Value <> FBorderEdges then
begin
FBorderEdges := Value;
TdxButton(FOwner).HookResized;
end;
end;
{-----------------------------------------------------------------------------
Procedure: TdxColors.SetBorderLine
Author: mh
Date: 30-Apr-2002
Arguments: Value: TColor
Result: None
-----------------------------------------------------------------------------}
procedure TdxColors.SetBorderLine(Value: TColor);
begin
if Value <> FBorderLine then
begin
FBorderLine := Value;
TdxButton(FOwner).HookResized;
end;
end;
{-----------------------------------------------------------------------------
Procedure: TdxColors.SetClickedFrom
Author: mh
Date: 30-Apr-2002
Arguments: Value: TColor
Result: None
-----------------------------------------------------------------------------}
procedure TdxColors.SetClickedFrom(Value: TColor);
begin
if Value <> FClickedFrom then
begin
FClickedFrom := Value;
TdxButton(FOwner).HookResized;
end;
end;
{-----------------------------------------------------------------------------
Procedure: TdxColors.SetClickedTo
Author: mh
Date: 30-Apr-2002
Arguments: Value: TColor
Result: None
-----------------------------------------------------------------------------}
procedure TdxColors.SetClickedTo(Value: TColor);
begin
if Value <> FClickedTo then
begin
FClickedTo := Value;
TdxButton(FOwner).HookResized;
end;
end;
{-----------------------------------------------------------------------------
Procedure: TdxColors.SetFocusedFrom
Author: mh
Date: 30-Apr-2002
Arguments: Value: TColor
Result: None
-----------------------------------------------------------------------------}
procedure TdxColors.SetFocusedFrom(Value: TColor);
begin
if Value <> FFocusedFrom then
begin
FFocusedFrom := Value;
TdxButton(FOwner).HookResized;
end;
end;
{-----------------------------------------------------------------------------
Procedure: TdxColors.SetFocusedTo
Author: mh
Date: 30-Apr-2002
Arguments: Value: TColor
Result: None
-----------------------------------------------------------------------------}
procedure TdxColors.SetFocusedTo(Value: TColor);
begin
if Value <> FFocusedTo then
begin
FFocusedTo := Value;
TdxButton(FOwner).HookResized;
end;
end;
{-----------------------------------------------------------------------------
Procedure: TdxColors.SetHighlightFrom
Author: mh
Date: 30-Apr-2002
Arguments: Value: TColor
Result: None
-----------------------------------------------------------------------------}
procedure TdxColors.SetHighlightFrom(Value: TColor);
begin
if Value <> FHighlightFrom then
begin
FHighlightFrom := Value;
TdxButton(FOwner).HookResized;
end;
end;
{-----------------------------------------------------------------------------
Procedure: TdxColors.SetHighlightTo
Author: mh
Date: 30-Apr-2002
Arguments: Value: TColor
Result: None
-----------------------------------------------------------------------------}
procedure TdxColors.SetHighlightTo(Value: TColor);
begin
if Value <> FHighlightTo then
begin
FHighlightTo := Value;
TdxButton(FOwner).HookResized;
end;
end;
{-----------------------------------------------------------------------------
Procedure: TdxColors.SetHotTrack
Author: mh
Date: 29-Apr-2002
Arguments: Value: TColor
Result: None
-----------------------------------------------------------------------------}
procedure TdxColors.SetHotTrack(Value: TColor);
begin
if Value <> FHotTrack then
begin
FHotTrack := Value;
TdxButton(FOwner).HookResized;
end;
end;
{ TdxButton }
{-----------------------------------------------------------------------------
Procedure: TdxButton.Create
Author: mh
Date: 21-Feb-2002
Arguments: AOwner: TComponent
Result: None
-----------------------------------------------------------------------------}
constructor TdxButton.Create(AOwner: TComponent);
begin
inherited;
// set default properties.
Height := 25;
TabStop := True;
Width := 73;
// set custom properties.
FAutoGray := True;
FCancel := False;
FColors := TdxColors.Create(Self);
FDefault := False;
FImageIndex := -1;
FImageChangeLink := TChangeLink.Create;
FImageChangeLink.OnChange := ImageListChange;
FGlyph := TBitmap.Create;
FHotTrack := False;
FLayout := blGlyphLeft;
FQuality := bqMiddle;
FShowAccelChar := True;
FShowFocusRect := True;
FSpacing := 3;
FWordWrap := True;
// create ...
FBgGradient := TBitmap.Create; // background gradient
FCkGradient := TBitmap.Create; // clicked gradient
FFcGradient := TBitmap.Create; // focused gradient
FHlGradient := TBitmap.Create; // highlight gradient
end;
{-----------------------------------------------------------------------------
Procedure: TdxButton.Destroy
Author: mh
Date: 21-Feb-2002
Arguments: None
Result: None
-----------------------------------------------------------------------------}
destructor TdxButton.Destroy;
begin
FBgGradient.Free;
FCkGradient.Free;
FFcGradient.Free;
FHlGradient.Free;
FColors.Free;
FGlyph.Free;
FImageChangeLink.OnChange := nil;
FImageChangeLink := nil;
FImageChangeLink.Free;
inherited;
end;
{-----------------------------------------------------------------------------
Procedure: TdxButton.GetVersion
Author: mh
Date: 09-Apr-2002
Arguments: None
Result: string
-----------------------------------------------------------------------------}
function TdxButton.GetVersion: string;
begin
Result := SVersion;
end;
{-----------------------------------------------------------------------------
Procedure: TdxButton.GetActionLinkClass
Author: mh
Date: 09-Apr-2002
Arguments: None
Result: TControlActionLinkClass
-----------------------------------------------------------------------------}
function TdxButton.GetActionLinkClass: TControlActionLinkClass;
begin
Result := TdxButtonActionLink;
end;
{-----------------------------------------------------------------------------
Procedure: TdxButton.CMDialogKey
Author: mh
Date: 22-Feb-2002
Arguments: var Message: TCMDialogKey
Result: None
-----------------------------------------------------------------------------}
procedure TdxButton.CMDialogKey(var Message: TCMDialogKey);
begin
inherited;
with Message do
if (((CharCode = VK_RETURN) and (Focused or (FDefault and not (IsSibling))))
or ((CharCode = VK_ESCAPE) and FCancel) and (KeyDataToShiftState(KeyData) = []))
and CanFocus then
begin
Click;
Result := 1;
end
else
inherited;
end;
{-----------------------------------------------------------------------------
Procedure: TdxButton.SetAutoGray
Author: mh
Date: 12-Apr-2002
Arguments: Value: Boolean
Result: None
-----------------------------------------------------------------------------}
procedure TdxButton.SetAutoGray(Value: Boolean);
begin
if Value <> FAutoGray then
begin
FAutoGray := Value;
Invalidate;
end;
end;
{-----------------------------------------------------------------------------
Procedure: TdxButton.SetDefault
Author: mh
Date: 22-Feb-2002
Arguments: Value: Boolean
Result: None
-----------------------------------------------------------------------------}
procedure TdxButton.SetDefault(Value: Boolean);
begin
if Value <> FDefault then
begin
FDefault := Value;
with GetParentForm(Self) do
Perform(CM_FOCUSCHANGED, 0, LongInt(ActiveControl));
end;
end;
{-----------------------------------------------------------------------------
Procedure: TdxButton.SetGlyph
Author: mh
Date: 22-Feb-2002
Arguments: Value: TPicture
Result: None
-----------------------------------------------------------------------------}
procedure TdxButton.SetGlyph(Value: TBitmap);
begin
FGlyph.Assign(Value);
Invalidate;
end;
{-----------------------------------------------------------------------------
Procedure: TdxButton.SetHotTrack
Author: mh
Date: 29-Apr-2002
Arguments: Value: Boolean
Result: None
-----------------------------------------------------------------------------}
procedure TdxButton.SetHotTrack(Value: Boolean);
begin
if Value <> FHotTrack then
begin
FHotTrack := Value;
Invalidate;
end;
end;
{-----------------------------------------------------------------------------
Procedure: TdxButton.SetLayout
Author: mh
Date: 12-Apr-2002
Arguments: Value: TdxLayout
Result: None
-----------------------------------------------------------------------------}
procedure TdxButton.SetLayout(Value: TdxLayout);
begin
if Value <> FLayout then
begin
FLayout := Value;
Invalidate;
end;
end;
{-----------------------------------------------------------------------------
Procedure: TdxButton.SetQuality
Author: mh
Date: 22-Feb-2002
Arguments: Value: TdxQuality
Result: None
-----------------------------------------------------------------------------}
procedure TdxButton.SetQuality(Value: TdxQuality);
begin
if Value <> FQuality then
begin
FQuality := Value;
HookResized;
end;
end;
{-----------------------------------------------------------------------------
Procedure: TdxButton.SetShowAccelChar
Author: mh
Date: 22-Feb-2002
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -