Zaam Posted December 29, 2015 Share Posted December 29, 2015 Дано: local desc = wtButton:GetWidgetDesc() local wtNewButton = mainForm:CreateWidgetByDesc(desc) Спрашивается: как wtNewButton заменить обработчик событий? Мне, как большому любителю создания интерфейсов, хочется стащить готовый контрол из какого-нибудь системного аддона, но вот как задать свой обработчик событий - нипанятна. Quote Link to comment Share on other sites More sharing options...
logg Posted December 29, 2015 Share Posted December 29, 2015 Никак. Насколько помню реакция приходит в аддон родитель, и перехватывать эти реакция нельзя. Еще с билдменеджером была проблема, когда приходилось кнопку писать отдельным аддоном и лепить её в стандартный интерфейс, при нажатии кнопка отправляла эвент и основной аддон ловил его и показывался. (Привет ui9) Хотя раньше icreator писал, что отслеживал нажатия кнопок в экшен панели то ли по началу действия эффекта, то ли по его окончанию. Quote Link to comment Share on other sites More sharing options...
Zaam Posted December 30, 2015 Author Share Posted December 30, 2015 Насколько помню реакция приходит в аддон родитель, и перехватывать эти реакция нельзя.Родитель (тот виджет, в котором кнопка рисуется) или владелец (аддон, который кнопку создал)? Можно попробовать написать common.RegisterReactionHandler(OnReactionNewButton, "something"), где "something" заменить на содержимое секции <Reaction></Reaction> скопипащенной системной кнопки. Толь вот еще один вопрос - где это содержимое подглядеть. Quote Link to comment Share on other sites More sharing options...
logg Posted December 30, 2015 Share Posted December 30, 2015 Родитель тот виджет, в котором кнопка рисуется. Т.е. реакция приходит системному аддону, в случае с кнопкой билдменеджера. Реакции можно посмотреть в исходниках старого клиента. Quote Link to comment Share on other sites More sharing options...
Recommended Posts