Перейти к содержимому
1Ridav

GUI библиотека (ComputerCraft)

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

А у меня она что то не завелась на моей сборке... спецом поставил только СС и ничего больше. пытался запустить на золотом безпроводном терминале. пример из доки.

 

os.loadAPI("GUI")
 
local f = function(s)
  s.text = "CLICKED"
end
 
local button = GUI.NewButton(nil, 5, 5, 10, 3, "clickme", f, colors.cyan, colors.red, colors.green)
GUI.MainPanel:addCHILD(button) 
GUI.MainPanel:draw() 
 
GUI.NO_EXIT()
 
 
При клике на кнопку, попытка вызвать nil где-то в дебрях либы.
 
cleanup(MainPanel)
 
а функция то объявлена ниже по коду и естественно мы о ней еще не знаем в GUI.NO_EXIT()
ок поправил... больше не падает но и событие не сработало, текст не изменился.
 
Мне вот интересно либу то хоть раз запускал кто нибудь? я думал только у нас в конторе програмеры считают себя настолько крутыми что кодят в слепую и на тест за частую отдаются проги с синтаксическими ошибками =)
 
эх, пойду дайрвольфовское button api смотреть...

Поделиться сообщением


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

 

А у меня она что то не завелась на моей сборке... спецом поставил только СС и ничего больше. пытался запустить на золотом безпроводном терминале. пример из доки.

 

os.loadAPI("GUI")
 
local f = function(s)
  s.text = "CLICKED"
end
 
local button = GUI.NewButton(nil, 5, 5, 10, 3, "clickme", f, colors.cyan, colors.red, colors.green)
GUI.MainPanel:addCHILD(button) 
GUI.MainPanel:draw() 
 
GUI.NO_EXIT()
 
 
При клике на кнопку, попытка вызвать nil где-то в дебрях либы.
 
cleanup(MainPanel)
 
а функция то объявлена ниже по коду и естественно мы о ней еще не знаем в GUI.NO_EXIT()
ок поправил... больше не падает но и событие не сработало, текст не изменился.
 
Мне вот интересно либу то хоть раз запускал кто нибудь? я думал только у нас в конторе програмеры считают себя настолько крутыми что кодят в слепую и на тест за частую отдаются проги с синтаксическими ошибками =)
 
эх, пойду дайрвольфовское button api смотреть...

 

NO_EXIT пока не работает. Текст меняется при перерисовке объекта

s:setText("text") - сменит текст и перерисует объект самостоятельно

Поделиться сообщением


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

NO_EXIT пока не работает. Текст меняется при перерисовке объекта

s:setText("text") - сменит текст и перерисует объект самостоятельно

 

теперь работает =)

 

os.loadAPI("GUI")
 
local f = function(s)
  s.text = "CLICKED"
end
 
local exit = function(s)
  s.text = "Done"
  GUI.EXIT()
end
 
local button = GUI.NewButton(nil, 5, 5, 10, 3, "clickme", f, colors.cyan, colors.red, colors.green)
local button2 = GUI.NewButton(nil, 5, 9, 10, 3, "Exit", exit, colors.cyan, colors.red, colors.green)
GUI.MainPanel:addCHILD(button) 
GUI.MainPanel:addCHILD(button2) 
 
GUI.NO_EXIT()
 
все работает пока не нажмем exit ну и допилил восстановление сохраненного os.pullEvent.
 
Посмотрим что там дальше всплывет.. пока займусь реднетом и coroutin. если в итоге не всплывет ни каких проблем скину исправленную версию.
 
кстати, NO_EXIT преименую в Run. больше подходит по смыслу.

Поделиться сообщением


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

 

кстати, NO_EXIT преименую в Run. больше подходит по смыслу.

 

Почему? NO_EXIT — понятно, не выходить из программы. А RUN я лично ввобще не пойму. Бежать? Куда? :)

Поделиться сообщением


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

Почему? NO_EXIT — понятно, не выходить из программы. А RUN я лично ввобще не пойму. Бежать? Куда? :)

 

это значит запустить гуй =) что по факту эта функция и делает. там основной цикл крутится до того пока мы ему не пошлем сигнал на завершение. ну по крайней мере я так понял задумку автора и всеголишь реализовал...

 

Похоже либой реально ни кто не пользовался... в текстарии синтаксическая ошибка.

 

кстати допили курсоры в текстарии и инпуте и добавил ограничение на длину строки в инпуте. не вижу смысла рисовать маленький инпут и вводить в него длинное число. раз указана ширина 4 значит можно ввести строку длинной 3... хотя для пароля может и актуально... если не лень будет то дабавлю какоенить проперти включающее ограничение на длину. 

Поделиться сообщением


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

это значит запустить гуй =) что по факту эта функция и делает. там основной цикл крутится до того пока мы ему не пошлем сигнал на завершение. ну по крайней мере я так понял задумку автора и всеголишь реализовал...

 

Похоже либой реально ни кто не пользовался... в текстарии синтаксическая ошибка.

 

кстати допили курсоры в текстарии и инпуте и добавил ограничение на длину строки в инпуте. не вижу смысла рисовать маленький инпут и вводить в него длинное число. раз указана ширина 4 значит можно ввести строку длинной 3... хотя для пароля может и актуально... если не лень будет то дабавлю какоенить проперти включающее ограничение на длину. 

Я пробовал воспользоваться... Мало того, что мне лично ничегошеньки не понятно, так ещё и не работало нормально. С тех пор я её не использую.

Поделиться сообщением


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

Я пробовал воспользоваться... Мало того, что мне лично ничегошеньки не понятно, так ещё и не работало нормально. С тех пор я её не использую.

это да.. я тоже долго вкуривал какой же должен быть воркфлоу.. пока меня не просвятили что она не дописана =)

 

так то я все что мне нужно было допилил,. но все-же пока напишу основное приложение для которого она собственно мне и понадобилась и вот тогда если все будет ок скину саму либу. мне нужно чтобы она работала паралельно с реднетом... вроде как должно работать. но возможно придется перехерачить обработку событий... в общем посмотрим... сегодня уже времени нет этим заниматся... думал блин возьму готовую либу и дело в шляпе, а получилось как обычно :D

Поделиться сообщением


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

ГУИ библа работает на ивентах. Вот и все. Выполнит любой участок кода, но желательно, чтобы больших циклов в самих гуи элементах не было. Иначе произойдет фриз программы

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ГУИ библа работает на ивентах. Вот и все. Выполнит любой участок кода, но желательно, чтобы больших циклов в самих гуи элементах не было. Иначе произойдет фриз программы

У меня таймер с гуй , и надо чтобы каждую секунду обновлялся текст на экране . Таймер может быть запушен на 60 часов максимум

Поделиться сообщением


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

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

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

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

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

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

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


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