easyeditoractionsreg.pas.svn-base
来自「支持自定义语法高亮显示的编辑器控件」· SVN-BASE 代码 · 共 247 行
SVN-BASE
247 行
unit EasyEditorActionsReg;
interface
procedure Register;
implementation
uses EasyEditorActions, Classes, StdActns, Windows, ActnRes, ActnList;
type
TEasyEditActionClass = class of TAction;
TEditActionClass = class of TAction;
TEditActionWrapper = class(TAction);
TEasyEditActionsInfo = record
EasyEditActionClass: TEasyEditActionClass;
EditActionClass: TEditActionClass;
DefaultCaption: string;
DefaultHint: string;
DefaultImageIndex: Integer;
DefaultShortCut: TShortCut;
end;
const
EasyEditActionsCount = 36;
EasyEditActionsInfo: array[0..EasyEditActionsCount - 1] of TEasyEditActionsInfo = (
(EasyEditActionClass: TEasyEditAction; EditActionClass: nil;
DefaultCaption: 'Edit Action'; DefaultHint: ''; DefaultImageIndex: - 1;
DefaultShortCut: 0),
(EasyEditActionClass: TEasyEditCutAction; EditActionClass: TEditCut;
DefaultCaption: 'Cu&t'; DefaultHint: 'Cut'; DefaultImageIndex: - 1;
DefaultShortCut: Ord('X') + scCtrl),
(EasyEditActionClass: TEasyEditCopyAction; EditActionClass: TEditCopy;
DefaultCaption: '&Copy'; DefaultHint: 'Copy'; DefaultImageIndex: - 1;
DefaultShortCut: Ord('C') + scCtrl),
(EasyEditActionClass: TEasyEditPasteAction; EditActionClass: TEditPaste;
DefaultCaption: '&Paste'; DefaultHint: 'Paste'; DefaultImageIndex: - 1;
DefaultShortCut: Ord('V') + scCtrl),
(EasyEditActionClass: TEasyEditClearAction; EditActionClass: TEditDelete;
DefaultCaption: '&Clear All'; DefaultHint: 'Clear'; DefaultImageIndex: - 1;
DefaultShortCut: 0),
(EasyEditActionClass: TEasyEditSelectAllAction; EditActionClass: TEditSelectAll;
DefaultCaption: 'Select &All'; DefaultHint: 'Select All'; DefaultImageIndex:
- 1; DefaultShortCut: Ord('A') + scCtrl),
(EasyEditActionClass: TEasyEditUndoAction; EditActionClass: nil {TEditUndo};
DefaultCaption: '&Undo'; DefaultHint: 'Undo'; DefaultImageIndex: - 1;
DefaultShortCut: Ord('Z') + scCtrl),
(EasyEditActionClass: TEasyEditRedoAction; EditActionClass: nil;
DefaultCaption: '&Redo'; DefaultHint: 'Redo'; DefaultImageIndex: - 1;
DefaultShortCut: Ord('Y') + scCtrl),
(EasyEditActionClass: TEasyEditAutoCorrectionAction; EditActionClass: nil;
DefaultCaption: '&Auto Correction All Words'; DefaultHint: 'Starts the Autocorrection for all Words of the current text'; DefaultImageIndex: - 1;
DefaultShortCut: 0),
(EasyEditActionClass: TEasyEditIndentAction; EditActionClass: nil;
DefaultCaption: '&Indent'; DefaultHint: 'Indent Block'; DefaultImageIndex: -
1; DefaultShortCut: Ord('I') + scShift + scCtrl),
(EasyEditActionClass: TEasyEditUnindentAction; EditActionClass: nil;
DefaultCaption: '&Unindent'; DefaultHint: 'Unindent Block';
DefaultImageIndex: - 1; DefaultShortCut: Ord('U') + scShift + scCtrl),
(EasyEditActionClass: TEasyEditLowercaseAction; EditActionClass: nil;
DefaultCaption: '&Lowercase'; DefaultHint: 'Lowercase Block';
DefaultImageIndex: - 1; DefaultShortCut: 0),
(EasyEditActionClass: TEasyEditUppercaseAction; EditActionClass: nil;
DefaultCaption: '&Uppercase'; DefaultHint: 'Uppercase Block';
DefaultImageIndex: - 1; DefaultShortCut: 0),
(EasyEditActionClass: TEasyEditCommentAction; EditActionClass: nil;
DefaultCaption: 'Comment Block'; DefaultHint:
'Comment Block with Single Line Comment'; DefaultImageIndex: - 1;
DefaultShortCut: Ord('M') + scCtrl),
(EasyEditActionClass: TEasyEditUncommentAction; EditActionClass: nil;
DefaultCaption: 'Uncomment Block'; DefaultHint:
'Uncomment Block from Single Line Comment'; DefaultImageIndex: - 1;
DefaultShortCut: Ord('M') + scCtrl + scShift),
(EasyEditActionClass: TEasyEditSortUpAction; EditActionClass: nil;
DefaultCaption: 'Sort Up'; DefaultHint: 'Sort Block Upwards';
DefaultImageIndex: - 1; DefaultShortCut: 0),
(EasyEditActionClass: TEasyEditSortDownAction; EditActionClass: nil;
DefaultCaption: 'Sort Down'; DefaultHint: 'Sort Block Downwards';
DefaultImageIndex: - 1; DefaultShortCut: 0),
(EasyEditActionClass: TEasyEditSearchAction; EditActionClass: nil;
DefaultCaption: 'Search'; DefaultHint: 'Search'; DefaultImageIndex: - 1;
DefaultShortCut: Ord('F') + scCtrl),
(EasyEditActionClass: TEasyEditSearchAndReplaceAction; EditActionClass: nil;
DefaultCaption: 'Replace'; DefaultHint: 'Replace'; DefaultImageIndex: - 1;
DefaultShortCut: Ord('R') + scCtrl),
(EasyEditActionClass: TEasyEditSearchAgainAction; EditActionClass: nil;
DefaultCaption: 'Search Again'; DefaultHint: 'Search Again';
DefaultImageIndex: - 1; DefaultShortCut: VK_F3),
(EasyEditActionClass: TEasyEditSearchAndReplaceAgainAction; EditActionClass: nil;
DefaultCaption: 'Replace Again'; DefaultHint: 'Replace Again';
DefaultImageIndex: - 1; DefaultShortCut: 0),
(EasyEditActionClass: TEasyEditSearchAndReplaceAgainAction; EditActionClass: nil;
DefaultCaption: 'Replace Again'; DefaultHint: 'Replace Again';
DefaultImageIndex: - 1; DefaultShortCut: 0),
(EasyEditActionClass: TEasyEditIncSearchAction; EditActionClass: nil;
DefaultCaption: 'Incremental Search'; DefaultHint: 'Activating Incremental Search'; DefaultImageIndex: - 1;
DefaultShortCut: Ord('E') + scCtrl),
(EasyEditActionClass: TEasyEditSearchPrevIdentifier; EditActionClass: nil;
DefaultCaption: 'Search Previous Identifier'; DefaultHint: 'Searches for the previous current Identifier'; DefaultImageIndex: - 1;
DefaultShortCut: VK_UP + scAlt+ scCtrl),
(EasyEditActionClass: TEasyEditSearchNextIdentifier; EditActionClass: nil;
DefaultCaption: 'Search Next Identifier'; DefaultHint: 'Searches for the next current Identifier'; DefaultImageIndex: - 1;
DefaultShortCut: VK_DOWN + scAlt+ scCtrl),
(EasyEditActionClass: TEasyEditSearchOpenBracketAction; EditActionClass: nil;
DefaultCaption: 'Find Open Bracket'; DefaultHint: 'Searches for the next open Bracket before current position'; DefaultImageIndex: - 1;
DefaultShortCut: Ord('8') + scAlt+ scCtrl),
(EasyEditActionClass: TEasyEditSearchCloseBracketAction; EditActionClass: nil;
DefaultCaption: 'Find Close Bracket'; DefaultHint: 'Searches for the next close Bracket behind current position'; DefaultImageIndex: - 1;
DefaultShortCut: Ord('9') + scAlt+ scCtrl),
(EasyEditActionClass: TEasyEditGotoLineAction; EditActionClass: nil;
DefaultCaption: 'Goto Line'; DefaultHint: 'Goto Line';
DefaultImageIndex: -1; DefaultShortCut: Ord('G') + scAlt),
(EasyEditActionClass: TEasyEditPrintAction; EditActionClass: nil;
DefaultCaption: 'Print'; DefaultHint: 'Print';
DefaultImageIndex: - 1; DefaultShortCut: 0),
(EasyEditActionClass: TEasyEditPrintPreviewAction; EditActionClass: nil;
DefaultCaption: 'Print Preview'; DefaultHint: 'Print Preview';
DefaultImageIndex: - 1; DefaultShortCut: 0),
(EasyEditActionClass: TEasyEditCustomizeAction; EditActionClass: nil;
DefaultCaption: 'Customize Editor'; DefaultHint: 'Customize Editor Settings';
DefaultImageIndex: - 1; DefaultShortCut: 0),
// (EasyEditActionClass: TEasyEditCollapsableAction; EditActionClass: nil;
// DefaultCaption: 'Collapsable Block'; DefaultHint: 'Make block Collapsable';
// DefaultImageIndex: - 1; DefaultShortCut: Ord('C') + scAlt),
// (EasyEditActionClass: TEasyEditUncollapsableAction; EditActionClass: nil;
// DefaultCaption: 'Uncollapse Block'; DefaultHint: 'Uncollapse block';
// DefaultImageIndex: - 1; DefaultShortCut: Ord('U') + scAlt),
(EasyEditActionClass: TEasyEditWordWrapAction; EditActionClass: nil;
DefaultCaption: 'Word Wrap'; DefaultHint: 'Enable/Disable Word Wrap';
DefaultImageIndex: - 1; DefaultShortCut: 0) ,
(EasyEditActionClass: TEasyEditShowFormattingMarksAction; EditActionClass: nil;
DefaultCaption: 'Show Formatting Marks'; DefaultHint: 'Show/Hide Formatting Marks for CRLF or TAB';
DefaultImageIndex: - 1; DefaultShortCut: 0) ,
(EasyEditActionClass: TEasyEditHiglightBracketsAction; EditActionClass: nil;
DefaultCaption: 'Highlight Brackets'; DefaultHint: 'Enable/Disable Bracket Highlighting';
DefaultImageIndex: - 1; DefaultShortCut: 0) ,
(EasyEditActionClass: TEasyEditShowRulersAction; EditActionClass: nil;
DefaultCaption: 'Show Rulers'; DefaultHint: 'Show/Hide Rulers';
DefaultImageIndex: - 1; DefaultShortCut: 0) ,
(EasyEditActionClass: TEasyEditShowLineNumbersAction; EditActionClass: nil;
DefaultCaption: 'Show Line Numbers'; DefaultHint: 'Show/Hide Line Numbers';
DefaultImageIndex: - 1; DefaultShortCut: 0) );
type
TEasyStandardActions = class(TStandardActions)
protected
procedure CreateByInfo(AEditActionsInfo: TEasyEditActionsInfo);
function FindEditActionByClassType(AEditActionClass: TEditActionClass):
TEditAction;
public
constructor Create(AOwner: TComponent); override;
end;
procedure Register;
begin
RegisterActions('EasyEditor', [
{TEasyEditBaseAction, }TEasyEditAction,
TEasyEditCutAction, TEasyEditCopyAction,
TEasyEditPasteAction, TEasyEditClearAction,
TEasyEditSelectAllAction, TEasyEditUndoAction, TEasyEditRedoAction,
TEasyEditAutoCorrectionAction,
TEasyEditIndentAction, TEasyEditUnindentAction,
TEasyEditLowercaseAction, TEasyEditUppercaseAction,
TEasyEditCollapsableAction, TEasyEditUncollapsableAction,
TEasyEditCommentAction, TEasyEditUncommentAction,
TEasyEditSortUpAction, TEasyEditSortDownAction,
TEasyEditSearchAction, TEasyEditSearchAgainAction,
TEasyEditSearchAndReplaceAction, TEasyEditSearchAndReplaceAgainAction,
TEasyEditSearchPrevIdentifier, TEasyEditSearchNextIdentifier,
TEasyEditSearchOpenBracketAction, TEasyEditSearchCloseBracketAction,
TEasyEditIncSearchAction,
TEasyEditGotoLineAction, TEasyEditCustomizeAction,
TEasyEditPrintAction, TEasyEditPrintPreviewAction,
tEasyEditShowFormattingMarksAction, tEasyEditShowLineNumbersAction,
tEasyEditWordWrapAction, tEasyEditShowRulersAction, TEasyEditHiglightBracketsAction
],
TEasyStandardActions);
end;
{ TEasyStandardActions }
constructor TEasyStandardActions.Create(AOwner: TComponent);
var
I: Integer;
begin
inherited;
for I := Low(EasyEditActionsInfo) to High(EasyEditActionsInfo) do
CreateByInfo(EasyEditActionsInfo[I]);
end;
procedure TEasyStandardActions.CreateByInfo(
AEditActionsInfo: TEasyEditActionsInfo);
var
AEditAction: TEditAction;
AEasyEditAction: TAction;
begin
AEditAction := FindEditActionByClassType(AEditActionsInfo.EditActionClass);
AEasyEditAction := AEditActionsInfo.EasyEditActionClass.Create(Self);
with AEasyEditAction do
begin
if AEditAction <> nil then
begin
Caption := TEditActionWrapper(AEditAction).Caption;
Hint := TEditActionWrapper(AEditAction).Hint;
ShortCut := TEditActionWrapper(AEditAction).ShortCut;
end
else
begin
Caption := AEditActionsInfo.DefaultCaption;
Hint := AEditActionsInfo.DefaultHint;
ImageIndex := AEditActionsInfo.DefaultImageIndex;
ShortCut := AEditActionsInfo.DefaultShortCut;
end;
end;
end;
function TEasyStandardActions.FindEditActionByClassType(
AEditActionClass: TEditActionClass): TEditAction;
var
I: Integer;
begin
Result := nil;
for I := 0 to ComponentCount - 1 do
if (Components[I].ClassType = AEditActionClass) and (Components[I] is
TEditAction) then
begin
Result := Components[I] as TEditAction;
Break;
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?