mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-05 09:58:06 +02:00
101 lines
2.2 KiB
ObjectPascal
101 lines
2.2 KiB
ObjectPascal
unit RegisterEMS;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils,
|
|
// LCL
|
|
Dialogs,
|
|
// LazUtils
|
|
LazUtilities,
|
|
// IdeIntf
|
|
SrcEditorIntf, IDEOptionsIntf, IDEOptEditorIntf,
|
|
// MacroScript
|
|
EMScriptMacro, EMSSelfTest, EMSIdeOptions, EMSStrings;
|
|
|
|
procedure Register;
|
|
|
|
implementation
|
|
|
|
procedure Register;
|
|
var
|
|
conf: TEMSConfig;
|
|
ok: Boolean;
|
|
OptionsGroup: Integer;
|
|
begin
|
|
OptionsGroup := GetFreeIDEOptionsGroupIndex(GroupEditor);
|
|
RegisterIDEOptionsGroup(OptionsGroup, TEMSConfig);
|
|
RegisterIDEOptionsEditor(OptionsGroup, TEMSIdeOptionsFrame, 1);
|
|
|
|
if not EMSSupported then {%H-}exit;
|
|
|
|
if not GetSkipCheckByKey('MacroScript') then begin
|
|
|
|
conf := GetEMSConf;
|
|
try
|
|
conf.Load;
|
|
except
|
|
try
|
|
conf.SelfTestFailed := EMSVersion;
|
|
conf.SelfTestActive := False;
|
|
conf.SelfTestError := 'load error';
|
|
conf.Save;
|
|
except
|
|
end;
|
|
MessageDlg(EmsSelfTestErrCaption,
|
|
format(EmsSelfTestFailedLastTime, [LineEnding]),
|
|
mtError, [mbOK], 0);
|
|
MacroListViewerWarningText := EMSNotActiveVerbose;
|
|
exit;
|
|
end;
|
|
|
|
if conf.SelfTestActive then begin
|
|
conf.SelfTestFailed := EMSVersion;
|
|
conf.SelfTestActive := False;
|
|
conf.SelfTestError := 'failed last time';
|
|
conf.Save;
|
|
MessageDlg(EmsSelfTestErrCaption,
|
|
format(EmsSelfTestFailedLastTime, [LineEnding]),
|
|
mtError, [mbOK], 0);
|
|
end;
|
|
if conf.SelfTestFailed >= EMSVersion then begin
|
|
MacroListViewerWarningText := EMSNotActiveVerbose;
|
|
exit;
|
|
end;
|
|
|
|
conf.SelfTestActive := True;
|
|
conf.Save;
|
|
|
|
ok := False;
|
|
try
|
|
ok := DoSelfTest;
|
|
except
|
|
end;
|
|
|
|
if not ok then begin
|
|
conf.SelfTestFailed := EMSVersion;
|
|
conf.SelfTestActive := False;
|
|
conf.SelfTestError := SelfTestErrorMsg;
|
|
conf.Save;
|
|
MessageDlg(EmsSelfTestErrCaption,
|
|
format(EmsSelfTestFailed, [LineEnding, SelfTestErrorMsg]),
|
|
mtError, [mbOK], 0);
|
|
|
|
MacroListViewerWarningText := EMSNotActiveVerbose;
|
|
exit;
|
|
end;
|
|
|
|
conf.SelfTestActive := False;
|
|
conf.SelfTestError := '';
|
|
conf.SelfTestFailed := 0;
|
|
conf.Save;
|
|
end;
|
|
|
|
EditorMacroPlayerClass := TEMSEditorMacro;
|
|
end;
|
|
|
|
end.
|
|
|