SynEdit/IDE: Added RTTI info for KeyStrokes.Command. Needed to save MouseAction

git-svn-id: trunk@20879 -
This commit is contained in:
martin 2009-07-17 16:59:49 +00:00
parent 45c7e7690f
commit 8523cdef61
5 changed files with 340 additions and 40 deletions

View File

@ -354,6 +354,8 @@ procedure GetEditorCommandValues(Proc: TGetStrProc);
function IdentToEditorCommand(const Ident: string; var Cmd: longint): boolean;
function EditorCommandToIdent(Cmd: longint; var Ident: string): boolean;
procedure RegisterKeyCmdIdentProcs(IdentToIntFn: TIdentToInt; IntToIdentFn: TIntToIdent);
implementation
// FOR LAZARUS
@ -592,6 +594,10 @@ const
(Value: EcToggleMarkupWord; Name: 'EcToggleMarkupWord')
);
var
ExtraIdentToIntFn: Array of TIdentToInt = nil;
ExtraIntToIdentFn: Array of TIntToIdent = nil;
procedure GetEditorCommandValues(Proc: TGetStrProc);
var
i: integer;
@ -601,45 +607,43 @@ begin
end;
function IdentToEditorCommand(const Ident: string; var Cmd: longint): boolean;
{$IFDEF SYN_COMPILER_2}
var
I: Integer;
{$ENDIF}
i: Integer;
begin
{$IFDEF SYN_COMPILER_2}
Result := FALSE;
for I := Low(EditorCommandStrs) to High(EditorCommandStrs) do
if CompareText(EditorCommandStrs[I].Name, Ident) = 0 then
begin
Result := TRUE;
Cmd := EditorCommandStrs[I].Value;
break;
end;
{$ELSE}
Result := IdentToInt(Ident, Cmd, EditorCommandStrs);
{$ENDIF}
Result := IdentToInt(Ident, Cmd, EditorCommandStrs);
i := 0;
while (i < length(ExtraIdentToIntFn)) and (not Result) do begin
Result := ExtraIdentToIntFn[i](Ident, Cmd);
inc(i);
end;
end;
function EditorCommandToIdent(Cmd: longint; var Ident: string): boolean;
{$IFDEF SYN_COMPILER_2}
var
I: Integer;
{$ENDIF}
i: Integer;
begin
{$IFDEF SYN_COMPILER_2}
Result := FALSE;
for I := Low(EditorCommandStrs) to High(EditorCommandStrs) do
if EditorCommandStrs[I].Value = Cmd then
begin
Result := TRUE;
Ident := EditorCommandStrs[I].Name;
break;
end;
{$ELSE}
Result := IntToIdent(Cmd, Ident, EditorCommandStrs);
{$ENDIF}
i := 0;
while (i < length(ExtraIntToIdentFn)) and (not Result) do begin
Result := ExtraIntToIdentFn[i](Cmd, Ident);
inc(i);
end;
end;
procedure RegisterKeyCmdIdentProcs(IdentToIntFn: TIdentToInt;
IntToIdentFn: TIntToIdent);
var
i: Integer;
begin
i := length(ExtraIdentToIntFn);
SetLength(ExtraIdentToIntFn, i + 1);
ExtraIdentToIntFn[i] := IdentToIntFn;
i := length(ExtraIntToIdentFn);
SetLength(ExtraIntToIdentFn, i + 1);
ExtraIntToIdentFn[i] := IntToIdentFn;
end;
function AllocatePluginKeyRange(Count: Integer): integer;
const
CurOffset : integer = 0;
@ -1129,10 +1133,13 @@ end;
{end} //ac 2000-07-05
initialization
{$IFNDEF FPC}
// FOR LAZARUS ToDo
RegisterIntegerConsts(TypeInfo(TSynEditorCommand), IdentToEditorCommand,
EditorCommandToIdent);
{$ENDIF}
RegisterIntegerConsts(TypeInfo(TSynEditorCommand),
{$IFDEF FPC}@{$ENDIF}IdentToEditorCommand,
{$IFDEF FPC}@{$ENDIF}EditorCommandToIdent);
finalization
ExtraIdentToIntFn := nil;
ExtraIntToIdentFn := nil;
end.

View File

@ -331,7 +331,7 @@ begin
FShift := TSynEditMouseAction(Source).Shift;
FShiftMask := TSynEditMouseAction(Source).ShiftMask;
FMoveCaret := TSynEditMouseAction(Source).MoveCaret;
FOption := TSynEditMouseAction(Source).Option;
FOption := TSynEditMouseAction(Source).FOption;
FPriority := TSynEditMouseAction(Source).Priority;
end else
inherited Assign(Source);

View File

@ -926,6 +926,32 @@ const
lshJScript
);
type
{ TSynEditMouseActionKeyCmdHelper }
TSynEditMouseActionKeyCmdHelper = class(TSynEditMouseAction)
private
function GetOptionKeyCmd: TSynEditorCommand;
procedure SetOptionKeyCmd(const AValue: TSynEditorCommand);
published
property Option: TSynEditorCommand read GetOptionKeyCmd write SetOptionKeyCmd;
end;
{ TSynEditMouseActionKeyCmdHelper }
function TSynEditMouseActionKeyCmdHelper.GetOptionKeyCmd: TSynEditorCommand;
begin
Result := inherited Option;
end;
procedure TSynEditMouseActionKeyCmdHelper.SetOptionKeyCmd(
const AValue: TSynEditorCommand);
begin
inherited Option := AValue;
end;
procedure RepairEditorFontHeight(var FontHeight: integer);
begin
if ((FontHeight>=0) and (FontHeight<=5))
@ -2011,14 +2037,14 @@ var
Procedure LoadMouseAct(Path: String; MActions: TSynEditMouseActions);
var
c, i, j: Integer;
MAct: TSynEditMouseAction;
MAct: TSynEditMouseActionKeyCmdHelper;
//ErrShown: Boolean;
begin
MActions.ResetDefaults;
//ErrShown := False;
// Deleted Defaults
MAct := TSynEditMouseAction.Create(nil);
MAct := TSynEditMouseActionKeyCmdHelper.Create(nil);
c := XMLConfig.GetValue(Path + 'CountDel', 0);
for i := 0 to c - 1 do begin
XMLConfig.ReadObject(Path + 'Del' + IntToStr(i) + '/', MAct);
@ -2276,16 +2302,22 @@ var
Procedure SaveMouseAct(Path: String; MActions: TSynEditMouseActions);
var
i, j, k, OldCnt: Integer;
MAct: TSynEditMouseActionKeyCmdHelper;
MADef: TSynEditMouseActions;
begin
MaDef := TSynEditMouseSelActionsClass(MActions.ClassType).Create(nil);
MAct := TSynEditMouseActionKeyCmdHelper.Create(nil);
MADef.ResetDefaults;
OldCnt := XMLConfig.GetValue(Path + 'Count', 0);
j := 0;
for i := 0 to MActions.Count - 1 do begin
k := MADef.IndexOf(MActions[i], True);
if (k < 0) or not(MActions[i].Equals(MADef[k])) then begin
XMLConfig.WriteObject(Path + 'M' + IntToStr(j) + '/', MActions[i]);
if MActions[i].Command = emcSynEditCommand then begin
MAct.Assign(MActions[i]);
XMLConfig.WriteObject(Path + 'M' + IntToStr(j) + '/', MAct);
end else
XMLConfig.WriteObject(Path + 'M' + IntToStr(j) + '/', MActions[i]);
Inc(j);
end;
if k >= 0 then
@ -2297,12 +2329,18 @@ var
// Deleted Defaults
OldCnt := XMLConfig.GetValue(Path + 'CountDel', 0);
for i := 0 to MADef.Count - 1 do
XMLConfig.WriteObject(Path + 'Del' + IntToStr(i) + '/', MADef[i]);
for i := 0 to MADef.Count - 1 do begin
if MADef[i].Command = emcSynEditCommand then begin
MAct.Assign(MADef[i]);
XMLConfig.WriteObject(Path + 'Del' + IntToStr(i) + '/', MAct);
end else
XMLConfig.WriteObject(Path + 'Del' + IntToStr(i) + '/', MADef[i]);
end;
XMLConfig.SetValue(Path + 'CountDel', MADef.Count);
for i := MADef.Count to OldCnt do
XMLConfig.DeletePath(Path + 'Del' + IntToStr(i));
MAct.Free;
MADef.Free;
end;

View File

@ -3242,5 +3242,9 @@ begin
FScope:=TheScope;
end;
initialization
RegisterKeyCmdIdentProcs({$IFDEF FPC}@{$ENDIF}IdentToIDECommand,
{$IFDEF FPC}@{$ENDIF}IDECommandToIdent);
end.

View File

@ -534,6 +534,8 @@ procedure CreateStandardIDECommandScopes;
function CompareIDEShortCuts(Data1, Data2: Pointer): integer;
function CompareIDEShortCutKey1s(Data1, Data2: Pointer): integer;
function IdentToIDECommand(const Ident: string; var Cmd: longint): boolean;
function IDECommandToIdent(Cmd: longint; var Ident: string): boolean;
implementation
@ -1065,5 +1067,254 @@ begin
end;
end;
const
IDECommandStrs: array[0..201] of TIdentMapEntry = (
// search
(Value: ecFind; Name: 'ecFind'),
(Value: ecFindAgain; Name: 'ecFindAgain'),
(Value: ecFindNext; Name: 'ecFindNext'),
(Value: ecFindPrevious; Name: 'ecFindPrevious'),
(Value: ecReplace; Name: 'ecReplace'),
(Value: ecIncrementalFind; Name: 'ecIncrementalFind'),
(Value: ecFindProcedureDefinition; Name: 'ecFindProcedureDefinition'),
(Value: ecFindProcedureMethod; Name: 'ecFindProcedureMethod'),
(Value: ecGotoLineNumber; Name: 'ecGotoLineNumber'),
(Value: ecFindNextWordOccurrence; Name: 'ecFindNextWordOccurrence'),
(Value: ecFindPrevWordOccurrence; Name: 'ecFindPrevWordOccurrence'),
(Value: ecFindInFiles; Name: 'ecFindInFiles'),
(Value: ecJumpBack; Name: 'ecJumpBack'),
(Value: ecJumpForward; Name: 'ecJumpForward'),
(Value: ecAddJumpPoint; Name: 'ecAddJumpPoint'),
(Value: ecViewJumpHistory; Name: 'ecViewJumpHistory'),
(Value: ecJumpToNextError; Name: 'ecJumpToNextError'),
(Value: ecJumpToPrevError; Name: 'ecJumpToPrevError'),
(Value: ecProcedureList; Name: 'ecProcedureList'),
// search code
(Value: ecFindDeclaration; Name: 'ecFindDeclaration'),
(Value: ecFindBlockOtherEnd; Name: 'ecFindBlockOtherEnd'),
(Value: ecFindBlockStart; Name: 'ecFindBlockStart'),
(Value: ecOpenFileAtCursor; Name: 'ecOpenFileAtCursor'),
(Value: ecGotoIncludeDirective; Name: 'ecGotoIncludeDirective'),
// edit selection
(Value: ecSelectionUpperCase; Name: 'ecSelectionUpperCase'),
(Value: ecSelectionLowerCase; Name: 'ecSelectionLowerCase'),
(Value: ecSelectionTabs2Spaces; Name: 'ecSelectionTabs2Spaces'),
(Value: ecSelectionEnclose; Name: 'ecSelectionEnclose'),
(Value: ecSelectionComment; Name: 'ecSelectionComment'),
(Value: ecSelectionUncomment; Name: 'ecSelectionUncomment'),
(Value: ecSelectionSort; Name: 'ecSelectionSort'),
(Value: ecSelectionBreakLines; Name: 'ecSelectionBreakLines'),
(Value: ecSelectToBrace; Name: 'ecSelectToBrace'),
(Value: ecSelectCodeBlock; Name: 'ecSelectCodeBlock'),
(Value: ecSelectWord; Name: 'ecSelectWord'),
(Value: ecSelectLine; Name: 'ecSelectLine'),
(Value: ecSelectParagraph; Name: 'ecSelectParagraph'),
(Value: ecSelectionConditional; Name: 'ecSelectionConditional'),
(Value: ecToggleComment; Name: 'ecToggleComment'),
// insert text
(Value: ecInsertCharacter; Name: 'ecInsertCharacter'),
(Value: ecInsertGPLNotice; Name: 'ecInsertGPLNotice'),
(Value: ecInsertLGPLNotice; Name: 'ecInsertLGPLNotice'),
(Value: ecInsertUserName; Name: 'ecInsertUserName'),
(Value: ecInsertDateTime; Name: 'ecInsertDateTime'),
(Value: ecInsertChangeLogEntry; Name: 'ecInsertChangeLogEntry'),
(Value: ecInsertCVSAuthor; Name: 'ecInsertCVSAuthor'),
(Value: ecInsertCVSDate; Name: 'ecInsertCVSDate'),
(Value: ecInsertCVSHeader; Name: 'ecInsertCVSHeader'),
(Value: ecInsertCVSID; Name: 'ecInsertCVSID'),
(Value: ecInsertCVSLog; Name: 'ecInsertCVSLog'),
(Value: ecInsertCVSName; Name: 'ecInsertCVSName'),
(Value: ecInsertCVSRevision; Name: 'ecInsertCVSRevision'),
(Value: ecInsertCVSSource; Name: 'ecInsertCVSSource'),
(Value: ecInsertModifiedLGPLNotice; Name: 'ecInsertModifiedLGPLNotice'),
(Value: ecInsertTodo; Name: 'ecInsertTodo'),
(Value: ecInsertGUID; Name: 'ecInsertGUID'),
// source tools
(Value: ecWordCompletion; Name: 'ecWordCompletion'),
(Value: ecCompleteCode; Name: 'ecCompleteCode'),
(Value: ecIdentCompletion; Name: 'ecIdentCompletion'),
(Value: ecSyntaxCheck; Name: 'ecSyntaxCheck'),
(Value: ecGuessUnclosedBlock; Name: 'ecGuessUnclosedBlock'),
(Value: ecGuessMisplacedIFDEF; Name: 'ecGuessMisplacedIFDEF'),
(Value: ecConvertDFM2LFM; Name: 'ecConvertDFM2LFM'),
(Value: ecCheckLFM; Name: 'ecCheckLFM'),
(Value: ecConvertDelphiUnit; Name: 'ecConvertDelphiUnit'),
(Value: ecConvertDelphiProject; Name: 'ecConvertDelphiProject'),
(Value: ecConvertDelphiPackage; Name: 'ecConvertDelphiPackage'),
(Value: ecConvertEncoding; Name: 'ecConvertEncoding'),
(Value: ecMakeResourceString; Name: 'ecMakeResourceString'),
(Value: ecDiff; Name: 'ecDiff'),
(Value: ecExtractProc; Name: 'ecExtractProc'),
(Value: ecFindIdentifierRefs; Name: 'ecFindIdentifierRefs'),
(Value: ecRenameIdentifier; Name: 'ecRenameIdentifier'),
(Value: ecInvertAssignment; Name: 'ecInvertAssignment'),
(Value: ecShowCodeContext; Name: 'ecShowCodeContext'),
(Value: ecShowAbstractMethods; Name: 'ecShowAbstractMethods'),
(Value: ecRemoveEmptyMethods; Name: 'ecRemoveEmptyMethods'),
(Value: ecRemoveUnusedUnits; Name: 'ecRemoveUnusedUnits'),
(Value: ecFindOverloads; Name: 'ecFindOverloads'),
// file menu
(Value: ecNew; Name: 'ecNew'),
(Value: ecNewUnit; Name: 'ecNewUnit'),
(Value: ecNewForm; Name: 'ecNewForm'),
(Value: ecOpen; Name: 'ecOpen'),
(Value: ecRevert; Name: 'ecRevert'),
(Value: ecSave; Name: 'ecSave'),
(Value: ecSaveAs; Name: 'ecSaveAs'),
(Value: ecSaveAll; Name: 'ecSaveAll'),
(Value: ecClose; Name: 'ecClose'),
(Value: ecCloseAll; Name: 'ecCloseAll'),
(Value: ecCleanDirectory; Name: 'ecCleanDirectory'),
(Value: ecRestart; Name: 'ecRestart'),
(Value: ecQuit; Name: 'ecQuit'),
// IDE navigation
(Value: ecToggleFormUnit; Name: 'ecToggleFormUnit'),
(Value: ecToggleObjectInsp; Name: 'ecToggleObjectInsp'),
(Value: ecToggleSourceEditor; Name: 'ecToggleSourceEditor'),
(Value: ecToggleCodeExpl; Name: 'ecToggleCodeExpl'),
(Value: ecToggleFPDocEditor; Name: 'ecToggleFPDocEditor'),
(Value: ecToggleMessages; Name: 'ecToggleMessages'),
(Value: ecToggleWatches; Name: 'ecToggleWatches'),
(Value: ecToggleBreakPoints; Name: 'ecToggleBreakPoints'),
(Value: ecToggleDebuggerOut; Name: 'ecToggleDebuggerOut'),
(Value: ecViewUnits; Name: 'ecViewUnits'),
(Value: ecViewForms; Name: 'ecViewForms'),
(Value: ecViewUnitDependencies; Name: 'ecViewUnitDependencies'),
(Value: ecViewUnitInfo; Name: 'ecViewUnitInfo'),
(Value: ecToggleLocals; Name: 'ecToggleLocals'),
(Value: ecToggleCallStack; Name: 'ecToggleCallStack'),
(Value: ecToggleSearchResults; Name: 'ecToggleSearchResults'),
(Value: ecViewAnchorEditor; Name: 'ecViewAnchorEditor'),
(Value: ecToggleCodeBrowser; Name: 'ecToggleCodeBrowser'),
(Value: ecToggleCompPalette; Name: 'ecToggleCompPalette'),
(Value: ecToggleIDESpeedBtns; Name: 'ecToggleIDESpeedBtns'),
(Value: ecViewComponents; Name: 'ecViewComponents'),
(Value: ecToggleRestrictionBrowser; Name: 'ecToggleRestrictionBrowser'),
(Value: ecViewTodoList; Name: 'ecViewTodoList'),
(Value: ecToggleRegisters; Name: 'ecToggleRegisters'),
(Value: ecToggleAssembler; Name: 'ecToggleAssembler'),
// sourcenotebook commands
(Value: ecNextEditor; Name: 'ecNextEditor'),
(Value: ecPrevEditor; Name: 'ecPrevEditor'),
(Value: ecMoveEditorLeft; Name: 'ecMoveEditorLeft'),
(Value: ecMoveEditorRight; Name: 'ecMoveEditorRight'),
(Value: ecToggleBreakPoint; Name: 'ecToggleBreakPoint'),
(Value: ecRemoveBreakPoint; Name: 'ecRemoveBreakPoint'),
(Value: ecMoveEditorLeftmost; Name: 'ecMoveEditorLeftmost'),
(Value: ecMoveEditorRightmost; Name: 'ecMoveEditorRightmost'),
(Value: ecGotoEditor1; Name: 'ecGotoEditor1'),
(Value: ecGotoEditor2; Name: 'ecGotoEditor2'),
(Value: ecGotoEditor3; Name: 'ecGotoEditor3'),
(Value: ecGotoEditor4; Name: 'ecGotoEditor4'),
(Value: ecGotoEditor5; Name: 'ecGotoEditor5'),
(Value: ecGotoEditor6; Name: 'ecGotoEditor6'),
(Value: ecGotoEditor7; Name: 'ecGotoEditor7'),
(Value: ecGotoEditor8; Name: 'ecGotoEditor8'),
(Value: ecGotoEditor9; Name: 'ecGotoEditor9'),
(Value: ecGotoEditor0; Name: 'ecGotoEditor0'),
// marker
(Value: ecSetFreeBookmark; Name: 'ecSetFreeBookmark'),
(Value: ecPrevBookmark; Name: 'ecPrevBookmark'),
(Value: ecNextBookmark; Name: 'ecNextBookmark'),
// compile menu
(Value: ecBuild; Name: 'ecBuild'),
(Value: ecBuildAll; Name: 'ecBuildAll'),
(Value: ecQuickCompile; Name: 'ecQuickCompile'),
(Value: ecAbortBuild; Name: 'ecAbortBuild'),
(Value: ecRun; Name: 'ecRun'),
(Value: ecPause; Name: 'ecPause'),
(Value: ecStepInto; Name: 'ecStepInto'),
(Value: ecStepOver; Name: 'ecStepOver'),
(Value: ecRunToCursor; Name: 'ecRunToCursor'),
(Value: ecStopProgram; Name: 'ecStopProgram'),
(Value: ecResetDebugger; Name: 'ecResetDebugger'),
(Value: ecBuildLazarus; Name: 'ecBuildLazarus'),
(Value: ecBuildFile; Name: 'ecBuildFile'),
(Value: ecRunFile; Name: 'ecRunFile'),
(Value: ecConfigBuildFile; Name: 'ecConfigBuildFile'),
(Value: ecInspect; Name: 'ecInspect'),
(Value: ecEvaluate; Name: 'ecEvaluate'),
(Value: ecAddWatch; Name: 'ecAddWatch'),
// project menu
(Value: ecNewProject; Name: 'ecNewProject'),
(Value: ecNewProjectFromFile; Name: 'ecNewProjectFromFile'),
(Value: ecOpenProject; Name: 'ecOpenProject'),
(Value: ecCloseProject; Name: 'ecCloseProject'),
(Value: ecSaveProject; Name: 'ecSaveProject'),
(Value: ecSaveProjectAs; Name: 'ecSaveProjectAs'),
(Value: ecPublishProject; Name: 'ecPublishProject'),
(Value: ecProjectInspector; Name: 'ecProjectInspector'),
(Value: ecAddCurUnitToProj; Name: 'ecAddCurUnitToProj'),
(Value: ecRemoveFromProj; Name: 'ecRemoveFromProj'),
(Value: ecViewProjectSource; Name: 'ecViewProjectSource'),
(Value: ecProjectOptions; Name: 'ecProjectOptions'),
// components menu
(Value: ecOpenPackage; Name: 'ecOpenPackage'),
(Value: ecOpenPackageFile; Name: 'ecOpenPackageFile'),
(Value: ecOpenPackageOfCurUnit; Name: 'ecOpenPackageOfCurUnit'),
(Value: ecAddCurUnitToPkg; Name: 'ecAddCurUnitToPkg'),
(Value: ecPackageGraph; Name: 'ecPackageGraph'),
(Value: ecEditInstallPkgs; Name: 'ecEditInstallPkgs'),
(Value: ecConfigCustomComps; Name: 'ecConfigCustomComps'),
(Value: ecNewPackage; Name: 'ecNewPackage'),
// custom tools menu
(Value: ecExtToolFirst; Name: 'ecExtToolFirst'),
(Value: ecExtToolLast; Name: 'ecExtToolLast'),
// option commmands
(Value: ecRunParameters; Name: 'ecRunParameters'),
(Value: ecCompilerOptions; Name: 'ecCompilerOptions'),
(Value: ecExtToolSettings; Name: 'ecExtToolSettings'),
(Value: ecConfigBuildLazarus; Name: 'ecConfigBuildLazarus'),
(Value: ecEnvironmentOptions; Name: 'ecEnvironmentOptions'),
(Value: ecReserved1; Name: 'ecReserved1'), // reserved
(Value: ecEditCodeTemplates; Name: 'ecEditCodeTemplates'),
(Value: ecReserved2; Name: 'ecReserved2'), // reserved
(Value: ecCodeToolsDefinesEd; Name: 'ecCodeToolsDefinesEd'),
(Value: ecRescanFPCSrcDir; Name: 'ecRescanFPCSrcDir'),
// help menu
(Value: ecAboutLazarus; Name: 'ecAboutLazarus'),
(Value: ecOnlineHelp; Name: 'ecOnlineHelp'),
(Value: ecReserved3; Name: 'ecReserved3'), // reserved
(Value: ecContextHelp; Name: 'ecContextHelp'),
(Value: ecEditContextHelp; Name: 'ecEditContextHelp'),
(Value: ecReportingBug; Name: 'ecReportingBug'),
// designer
(Value: ecDesignerCopy; Name: 'ecDesignerCopy'),
(Value: ecDesignerCut; Name: 'ecDesignerCut'),
(Value: ecDesignerPaste; Name: 'ecDesignerPaste'),
(Value: ecDesignerSelectParent; Name: 'ecDesignerSelectParent'),
(Value: ecDesignerMoveToFront; Name: 'ecDesignerMoveToFront'),
(Value: ecDesignerMoveToBack; Name: 'ecDesignerMoveToBack'),
(Value: ecDesignerForwardOne; Name: 'ecDesignerForwardOne'),
(Value: ecDesignerBackOne; Name: 'ecDesignerBackOne')
);
function IdentToIDECommand(const Ident: string; var Cmd: longint): boolean;
begin
Result := IdentToInt(Ident, Cmd, IDECommandStrs);
end;
function IDECommandToIdent(Cmd: longint; var Ident: string): boolean;
begin
Result := IntToIdent(Cmd, Ident, IDECommandStrs);
end;
end.