advgradient.pas

来自「delphi 第三方控件很出色,表格制作的」· PAS 代码 · 共 86 行

PAS
86
字号
unit AdvGradient;
{$I TMSDEFS.INC}
interface

uses
  Classes, Graphics;

type
  TGradientStyle = class(TPersistent)
  private
    FColorTo: TColor;
    FColorFrom: TColor;
    FBorderColor: TColor;
    FOnChange: TNotifyEvent;
    FDirection: Boolean;
    procedure SetBorderColor(const Value: TColor);
    procedure SetColorFrom(const Value: TColor);
    procedure SetColorTo(const Value: TColor);
  protected
    procedure Changed;
  public
    constructor Create;
    procedure Assign(Source: TPersistent); override;
  published
    property BorderColor: TColor read FBorderColor write SetBorderColor;
    property ColorFrom: TColor read FColorFrom write SetColorFrom;
    property ColorTo: TColor read FColorTo write SetColorTo;
    property Direction: Boolean read FDirection write FDirection;
    property OnChange: TNotifyEvent read FOnChange write FOnChange;
  end;


implementation


{ TGradientStyle }

procedure TGradientStyle.Assign(Source: TPersistent);
begin
  if not (Source is TGradientStyle) then
    Exit;

  FBorderColor := (Source as TGradientStyle).BorderColor;
  FColorTo := (Source as TGradientStyle).ColorTo;
  FColorFrom := (Source as TGradientStyle).ColorFrom;
  Changed;
end;

procedure TGradientStyle.Changed;
begin
  if Assigned(FOnChange) then
    FOnChange(Self);
end;

constructor TGradientStyle.Create;
begin
  {$IFDEF TMSDOTNET}
  inherited;
  {$ENDIF}

  FColorFrom := clHighLight;
  FColorTo := clNone;
  FBorderColor := clHighLight;
end;

procedure TGradientStyle.SetBorderColor(const Value: TColor);
begin
  FBorderColor := Value;
  Changed;
end;

procedure TGradientStyle.SetColorFrom(const Value: TColor);
begin
  FColorFrom := Value;
  Changed;
end;

procedure TGradientStyle.SetColorTo(const Value: TColor);
begin
  FColorTo := Value;
  Changed;  
end;


end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?