vladvro
 
  
  Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору codewarlock1101 и всем    Цитата: Если можешь - дай пожалуйста объяснения на примере.   1) Что значит на "выходе ожидают"???   |      согласен, неточная формулировка   попробую переформулировать:      "SciTE на выходе от всех обработчиков кроме OnSendEditor ожидает булевское значение handled, и если оно равно true, то если в SciTE заложена дальнейшая обработка события - она не делается,   причем nil, которое возвращается по умолчанию, приравнивается к false,   в случае с OnSendEditor - SciTE на выходе ожидает текстовое значение, и если оно не NULL, то тогда событие не отправляется далее на обработку к ядру Scitilla, а возвращается полученый от обработчика результат,   причем нюанс нынешней реализации состоит в том, что в NULL превращается не только nil, но и булевские значения (false и true)"      пример стандартного обработчика:    Код: local old_OnMenuCommand = OnMenuCommand   function OnMenuCommand (msg, source)       local result       -- вызов исходного обработчика если он был        if old_OnMenuCommand then result = old_OnMenuCommand(msg, source) end       if MyFunction() then return true end       return result   end  |      важно: мы возвращием true только, если нам требуется отменить стандартную реакцию SciTE на команду меню, иначе мы возвращаем то, что вернул исходный обработчик, либо nil, если его не было.      пример для OnSendEditor:    Код: local old_OnSendEditor = OnSendEditor   function OnSendEditor (msg, wp, lp)       local result       -- вызов исходного обработчика если он был        if old_OnSendEditor then result = old_OnSendEditor (msg, wp, lp) end       if msg == SCI_UPPERCASE then           ChangeCase("U")           return ""       elseif msg == SCI_LOWERCASE then           ChangeCase("L")           return ""       end       return result   end  |      важно: для отмены стандартной функции замены, надо вернуть что-либо отличное от nil, true или false, например пустую строку. |   Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено:  11:47 09-11-2006  | Исправлено: vladvro,   11:58 09-11-2006    |  
  |