?? aafonteditor.pas
字號:
{*******************************************************************************
AAFont - 平滑特效字體控件包
---------------------------
(C)Copyright 2001-2004
CnPack 開發(fā)組 周勁羽
這一控件包是自由軟件,您可以遵照自由軟件基金會出版的GNU 較
寬松通用公共許可證協(xié)議來修改和重新發(fā)布這一程序,或者用許可證的
第二版,或者(根據(jù)您的選擇)用任何更新的版本。
發(fā)布這一控件包的目的是希望它有用,但沒有任何擔(dān)保。甚至沒有
適合特定目的而隱含的擔(dān)保。更詳細(xì)的情況請參閱 GNU 較寬松通用公
共許可證。
您應(yīng)該已經(jīng)和控件包一起收到一份 GNU 較寬松通用公共許可證的
副本。如果還沒有,寫信給:
Free Software Foundation, Inc., 59 Temple Place - Suite
330, Boston, MA 02111-1307, USA.
單元作者:CnPack 開發(fā)組 周勁羽
下載地址:http://www.cnvcl.org
電子郵件:zjy@cnvcl.org
*******************************************************************************}
unit AAFontEditor;
{* |<PRE>
================================================================================
* 軟件名稱:平滑特效字體控件包
* 單元名稱:平滑特效字體屬性、組件編輯器單元
* 單元作者:CnPack 開發(fā)組 周勁羽
* 下載網(wǎng)址:http://www.cnvcl.org
* Eamil :zjy@cnvcl.org
* 開發(fā)平臺: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平滑字體特效參數(shù)類屬性編輯器,通過它用戶可在設(shè)計期可視化編輯平滑
字體特效參數(shù)。}
public
procedure Edit; override;
function GetAttributes: TPropertyAttributes; override;
function GetValue: string; override;
end;
{ TAALabelEditor }
TAALabelEditor = class(TComponentEditor)
{* TAALabel及其派生控件的組件編輯器,通過它用戶可在設(shè)計期可視化編輯平滑
字體特效參數(shù)。}
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 = '設(shè)置平滑特效字體(&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.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -