⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aafonteditor.pas

📁 AAFONT是一款Delphi控件
💻 PAS
字号:
{*******************************************************************************

                          AAFont - 平滑特效字体控件包
                          ---------------------------
                           (C)Copyright 2001-2004
                            CnPack 开发组 周劲羽

            这一控件包是自由软件,您可以遵照自由软件基金会出版的GNU 较
        宽松通用公共许可证协议来修改和重新发布这一程序,或者用许可证的
        第二版,或者(根据您的选择)用任何更新的版本。

            发布这一控件包的目的是希望它有用,但没有任何担保。甚至没有
        适合特定目的而隐含的担保。更详细的情况请参阅 GNU 较宽松通用公
        共许可证。

            您应该已经和控件包一起收到一份 GNU 较宽松通用公共许可证的
        副本。如果还没有,写信给:
            Free Software Foundation, Inc., 59 Temple Place - Suite
        330, Boston, MA 02111-1307, USA.

            单元作者:CnPack 开发组 周劲羽
            下载地址:http://www.yygw.net
            电子邮件:yygw@yygw.net

*******************************************************************************}

unit AAFontEditor;
{* |<PRE>
================================================================================
* 软件名称:平滑特效字体控件包
* 单元名称:平滑特效字体属性、组件编辑器单元
* 单元作者:CnPack 开发组 周劲羽
* 下载网址:http://www.yygw.net
* Eamil   :yygw@yygw.net
* 开发平台:PWin2000Pro + Delphi 5.01
* 兼容测试:PWin9X/2000/XP + Delphi 5/6/7 + C++Build 5/6
* 备  注:
* 最后更新:2002.07.02
================================================================================
|</PRE>}

interface

{$I AAFont.inc}

uses
  Windows, Messages, SysUtils, Classes,
{$IFDEF COMPILER6_UP}
  DesignIntf, DesignEditors;
{$ELSE}
  DsgnIntf;
{$ENDIF}

type

{ TAAEffectProperty }

  TAAEffectProperty = class(TClassProperty)
  {* TAAEffect平滑字体特效参数类属性编辑器,通过它用户可在设计期可视化编辑平滑
     字体特效参数。}
  public
    procedure Edit; override;
    function GetAttributes: TPropertyAttributes; override;
    function GetValue: string; override;
  end;

{ TAALabelEditor }

  TAALabelEditor = class(TComponentEditor)
  {* TAALabel及其派生控件的组件编辑器,通过它用户可在设计期可视化编辑平滑
     字体特效参数。}
  public
    procedure ExecuteVerb(Index: Integer); override;
    function GetVerb(Index: Integer): string; override;
    function GetVerbCount: Integer; override;
  end;

procedure Register;

implementation

uses
  AAFont, AACtrls, AAFontDialog;

procedure Register;
begin
  RegisterPropertyEditor(TypeInfo(TAAEffect), nil, '', TAAEffectProperty);
  RegisterComponentEditor(TAALabel, TAALabelEditor);
end;

resourcestring
  SAAEffect = '平滑特效字体';
  SAALabelVert = '设置平滑特效字体(&F)...';

{ TAAEffectProperty }

type
  TAAEffectAccess = class(TAAEffect);

procedure TAAEffectProperty.Edit;
var
  AEffect: TAAEffect;
  FontLabel: TFontLabel;
begin
  AEffect := TAAEffect(Pointer(GetOrdValue));
  with TAAFontDialog.Create(nil) do
  try
    if (PropCount = 1) and (TAAEffectAccess(AEffect).GetOwner is TFontLabel) then
    begin
      FontLabel := TFontLabel(TAAEffectAccess(AEffect).GetOwner);
      AllowChangeFont := True;
      Font.Assign(FontLabel.Font);
    end
    else
    begin
      FontLabel := nil;
      AllowChangeFont := False;
    end;
    Effect.Assign(AEffect);
    if Execute then
    begin
      SetOrdValue(Integer(Effect));
      if FontLabel <> nil then
        FontLabel.Font.Assign(Font);
    end;
  finally
    Free;
  end;
end;

function TAAEffectProperty.GetAttributes: TPropertyAttributes;
begin
  Result := [paSubProperties, paDialog, paReadOnly, paMultiSelect];
end;

function TAAEffectProperty.GetValue: string;
begin
  Result := SAAEffect;
end;

{ TAALabelEditor }

procedure TAALabelEditor.ExecuteVerb(Index: Integer);
var
  Ctrl: TAALabel;
begin
  if Index = 0 then
  begin
    if Component is TAALabel then
    begin
      Ctrl := TAALabel(Component);
      with TAAFontDialog.Create(nil) do
      try
        AllowChangeFont := True;
        Font.Assign(Ctrl.Font);
        Effect.Assign(Ctrl.Effect.FontEffect);
        if Execute then
        begin
          Ctrl.Font.Assign(Font);
          Ctrl.Effect.FontEffect := Effect;
          Designer.Modified;
        end;
      finally
        Free;
      end;
    end;
  end
  else
    inherited;
end;

function TAALabelEditor.GetVerb(Index: Integer): string;
begin
  if Index = 0 then
    Result := SAALabelVert
  else
    Result := inherited GetVerb(Index);
end;

function TAALabelEditor.GetVerbCount: Integer;
begin
  Result := 1;
end;

end.



⌨️ 快捷键说明

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