Показать сообщение отдельно
Старый 31.08.2009, 12:19   #35  
Denicce is offline
Denicce
Участник
 
62 / 54 (2) ++++
Регистрация: 22.03.2005
Адрес: Москва
Цитата:
Сообщение от DSPIC Посмотреть сообщение
2. Конечно же, видеть форму SysEditorGotoLine нам не нужно, да и ломать её не хочется. Решение – создать класс – наследник от FormRun, у которого убрать вызовы super() в методах init(), run(). Добавить методы, которые вызываются kernel’ем при использовании оригинальной формы: editor(), showForm(). В этом классе и будет жить наш editor, c которым мы можем что-нибудь делать.

Есть правда один недостаток – мы лишаемся формы SysEditorGotoLine, но за всю свою практику мне не пришлось ею воспользоваться ни разу. Достоинство – изменение только одной строки в стандартном методе ClassFactory\formRunClassOnClient. Этот подход должен избавить от необходимости правки методов класса EditorScripts для AxAssist.

Надеюсь - это пригодится.
можно и не лишаться формы. Я через globalCache() храню признак запуска Alt+M из класса-плугина Табакса и анализирую его в EditorScripts.getApplicableScripts(). Если вкл., то тут же return, иначе - стандартная обработка. Думаю, аналогично и в случае формы перехода к строке можно сделать.

ЗЫ
Я editor храню в infolog, как где-то тут описано было. ClassFactory не менял.

Последний раз редактировалось Denicce; 31.08.2009 в 12:21.