AddEnum; AddEnumSet
Решил зарегистрировать такую функцию:
function MessageDlgEx(const Msg: string; DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons; HelpCtx: Longint;
DefaultButton: TMsgDlgBtn = mbOK): Integer;
Отличается она от MessageDlg тем, что введен параметр DefaultButton (активная кнопка в диалоге).
Для этого додаю тип:
AddEnumSet('TMsgDlgBtn', 'mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp');
и, собственно, функцию:
AddMethod('function MessageDlgEx(const Msg: String; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; DefaultButton: TMsgDlgBtn = mbOK): Integer', CallMethod, 'DialogsExt');
При компиляции скрипта с этой функцией выдет ошибку о несовместимости типов TMsgDlgBtn и TMsgDlgButtons.
Вопросы:
Как правильно зарегистрировать такие типы?
Что посоветуете, если всё же нельзя зарегистрировать такие типы?
И таких случаев, когда необходимо как определенный тип так и множество этих типов может быть много.
function MessageDlgEx(const Msg: string; DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons; HelpCtx: Longint;
DefaultButton: TMsgDlgBtn = mbOK): Integer;
Отличается она от MessageDlg тем, что введен параметр DefaultButton (активная кнопка в диалоге).
Для этого додаю тип:
AddEnumSet('TMsgDlgBtn', 'mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp');
и, собственно, функцию:
AddMethod('function MessageDlgEx(const Msg: String; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; DefaultButton: TMsgDlgBtn = mbOK): Integer', CallMethod, 'DialogsExt');
При компиляции скрипта с этой функцией выдет ошибку о несовместимости типов TMsgDlgBtn и TMsgDlgButtons.
Вопросы:
Как правильно зарегистрировать такие типы?
Что посоветуете, если всё же нельзя зарегистрировать такие типы?
И таких случаев, когда необходимо как определенный тип так и множество этих типов может быть много.
Комментарии
AddEnumSet('TMsgDlgBtn', 'mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp');
должно быть
AddEnum('TMsgDlgBtn', 'mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp');