Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

Помощь новичку


PegX

Рекомендуемые сообщения

Доброго времени суток, товарищи. 

Уже всю голову сломал. Никак не могу осознать этот язык.

 

Есть структура виджетов Mainform->mainpanel->(button1,button2,text)

<?xml version="1.0" encoding="UTF-8" ?>
<WidgetPanel>
<Name>MainPanel</Name>
<Children>
<Item href="Header.(WidgetTextView).xdb#xpointer(/WidgetTextView)" />
<Item href="Text.(WidgetTextView).xdb#xpointer(/WidgetTextView)" />
<Item href="Execute.(WidgetButton).xdb#xpointer(/WidgetButton)" />
       <Item href="AOE.(WidgetButton).xdb#xpointer(/WidgetButton)" />
</Children>

 

Хочу чтобы при нажатии на button1 менялся текст в виджете TextView.

Но банально не могу достучаться до виджета с текстом

Казалось бы, что по аналогии со строчкой

 
wtMainPanel = mainForm:GetChildChecked( "MainPanel", false)
 
должна работать например 
 
wtBut =     wtMainPanel:GetChildChecked( "Execute", false)
 
Execute - название кнопки, 
<?xml version="1.0" encoding="UTF-8" ?>
<WidgetButton>
<Name>Execute</Name>
<Header> .....

Но увы и ах, в логах запис о том что невозможно найти детей. Подскажите где я туплю?спасибо

 

Ссылка на комментарий
Поделиться на другие сайты

Всё верно, проверьте имя файла Execute.(WidgetButton).xdb, он должен быть там же где MainPanel

Все изменения виджетов в файлах начинаются действовать только после полного перезапуска клиента.

Ссылка на комментарий
Поделиться на другие сайты

Так не достучаться до виджета с текстом или до кнопки?

У WidgetTextView тоже должно быть имя

Ссылка на комментарий
Поделиться на другие сайты

Так не достучаться до виджета с текстом или до кнопки?

У WidgetTextView тоже должно быть имя

в данном конкретном примере я пытаюсь достучаться до виджета кнопки, но в дальнейшем планирую до текста

Ссылка на комментарий
Поделиться на другие сайты

 

Что конкретно в mods?

 

Вы про основной скрипт программы?(я не силен в терминологии еще)

--------------------------------------------------------------------------------
-- INITIALIZATION
--------------------------------------------------------------------------------
function Init()
	LogInfo( "Начало" )
	common.RegisterReactionHandler( OnReactionExecute, "execute" ) 
	common.RegisterReactionHandler( OnReactionExecute, "AOE" )	
	wtMainPanel = mainForm:GetChildChecked( "MainPanel", false)
	wtBut =     wtMainPanel:GetChildChecked( "Execute", false)
end
--------------------------------------------------------------------------------
Init()
--------------------------------------------------------------------------------
Изменено пользователем PegX
Ссылка на комментарий
Поделиться на другие сайты

Если это весь код, то он работать не будет, т.к. не объявлены переменные wtMainPanel и wtBut

Посмотрите простенький аддон, который я выкладывал тут https://alloder.pro/topic/1485-aopackzeon/page-18#entry39093

Ссылка на комментарий
Поделиться на другие сайты

Если это весь код, то он работать не будет, т.к. не объявлены переменные wtMainPanel и wtBut

Посмотрите простенький аддон, который я выкладывал тут https://alloder.pro/topic/1485-aopackzeon/page-18#entry39093

Вобщем косяк ушел после перезагрузки клиента. Достучался я до виджета текста. Теперь вот пытаюсь текст записать

wtTextView:SetVal( "String", "999" )

но не все так просто,да?

Ссылка на комментарий
Поделиться на другие сайты

Вобщем косяк ушел после перезагрузки клиента. Достучался я до виджета текста. Теперь вот пытаюсь текст записать

wtTextView:SetVal( "String", "999" )

но не все так просто,да?

Чтобы это сработало, нужно чтобы в Text.txt, который указан в FormatFileRef в файле Text.(WidgetTextView) было что-то типа:

<header alignx = 'center' fontsize='16' shadow='1'><r name='String'/></header>

 

И опять перезагружать полностью клиент, после редактирования виджетов и txt.

Вообще вот эту тему надо бы прочитать: https://alloder.pro/topic/33-sozdanie-gui/?hl=%2B%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5+%2Bgui

Ссылка на комментарий
Поделиться на другие сайты

Чтобы это сработало, нужно чтобы в Text.txt, который указан в FormatFileRef в файле Text.(WidgetTextView) было что-то типа:

<header alignx = 'center' fontsize='16' shadow='1'><r name='String'/></header>

 

И опять перезагружать полностью клиент, после редактирования виджетов и txt.

Вообще вот эту тему надо бы прочитать: https://alloder.pro/topic/33-sozdanie-gui/?hl=%2B%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5+%2Bgui

Спасибо огромное моя задумка заработала.

Ссылка на комментарий
Поделиться на другие сайты

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования