Zer0Galaxy Автор темы 2 187 Опубликовано: 5 июля, 2018 Ребят, помогите разобраться с событиями в этой библиотеке. У меня есть программа, которая должна уметь принимать сообщения по модему и писать его в лейбл. Решить ее выходит только с помощью огромного костыля в виде таймера и pullSignal, который просто каждую секунду слушает событие модема и перерисовывает лейбл. При использовании событий почему-то выкидывает или nil, или вообще ничего. Просто создаешь объект Event, в обработчик которого вставляешь изменение лейбы: function onEvent(receiverAddress, senderAddress, port, distance, message) Label1.caption=message Label1:redraw() end Event1=Form1:addEvent("modem_message", onEvent) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
neon_bones 0 Опубликовано: 15 июня, 2019 Возник такой вопрос. Я пишу небольшую прогу по контролю за реакторами из ic2. Для динамического обновления информации(температура и энергия на выходе)и ее обработки решил использовать таймер с интервалом в секунду. Он вроде задачу свою выполняет, но только если в окне выполняется какое-то действие(например при простом задиме любой клавиши таймер работает, или при постоянных кликах мыши), а вот просто в фоне таймер не подает признаков жизни, что критично для моих реакторов, которым нужен постоянный контроль за температурой и который осуществляется в функции-обработчике таймера. Сначала думал, что функцию криво написал, но у меня не работает даже пример с computer.energy(). Решил с помощью костыля, просто сделав функцию-обработчик рекурсивной, повесив тем самым любое взаимодействие с кнопками Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 17 июня, 2019 В 15.06.2019 в 20:33, neon_bones сказал: Возник такой вопрос. Я пишу небольшую прогу по контролю за реакторами из ic2... Ты решаешь задачу при помощи библиотеки forms? Код можешь выложить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Gerod 0 Опубликовано: 30 августа, 2019 Вопрос: а как созданный fmk файл, импортировать в редактор, для продолжение его работы, сам файл при запуске ничего не делает.? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 30 августа, 2019 В 30.08.2019 в 11:43, Gerod сказал: Вопрос: а как созданный fmk файл, импортировать в редактор, для продолжение его работы, сам файл при запуске ничего не делает.? Вопрос, я полагаю в тему FormsMaker. Там же можно найти и ответ: Цитата Эта версия уже позволяет сохранять редактируемый проект. Для того, что бы открыть сохраненный проект, необходимо запустить fmaker с параметром - имя проекта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Gerod 0 Опубликовано: 30 августа, 2019 (изменено) 1 час назад, Zer0Galaxy сказал: Вопрос, я полагаю в тему FormsMaker. Там же можно найти и ответ: Да, спасибо, библиотека и конструктор очень удобны, спасибо за ваши старания. Я новичок в opencomputers, не подскажите, как запустить программу с параметрами? (если есть ответ уже в данной или в другой теме, то прошу прощения) Изменено 30 августа, 2019 пользователем Gerod Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 30 августа, 2019 36 минут назад, Gerod сказал: Да, спасибо, библиотека и конструктор очень удобны, спасибо за ваши старания. Я новичок в opencomputers, не подскажите, как запустить программу с параметрами? (если есть ответ уже в данной или в другой теме, то прошу прощения) fmaker pr_name.fmk где pr_name - имя твоего проекта. К стати, если параметром программы является имя существующего файла, это имя не обязательно вбивать целиком. Достаточно ввести первые несколько букв и нажать Tab. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Gerod 0 Опубликовано: 30 августа, 2019 благодарю Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Griffi 17 Опубликовано: 20 сентября, 2020 _G.forms=forms _G.TComponent=TComponent _G.gpu=gpu А зачем _G? test=3 это то же что и _G.test=4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 148 Опубликовано: 20 сентября, 2020 2 часа назад, Griffi сказал: А зачем _G? test=3 это то же что и _G.test=4 Не знаю, какой там контекст, код я не читал. Но всё может поменять наличие в коде local: local test test = 3 _G.test = 4 print( _G.test, test ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 22 сентября, 2020 В 20.09.2020 в 18:27, Griffi сказал: _G.forms=forms _G.TComponent=TComponent _G.gpu=gpu А зачем _G? Стесняюсь спросить, а о чем вообще речь? Где в коде либы подобные строки? Хотя, давно это было. Может, я и подзабыл чего. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ov3rwrite 23 Опубликовано: 16 ноября, 2020 Некропостинг, но можно как то из onChange объекта List достать элемент, который был выбран? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 17 ноября, 2020 11 час назад, ov3rwrite сказал: Некропостинг, но можно как то из onChange объекта List достать элемент, который был выбран? Порылся в коде и обнаружил, что событие onChange принимает три параметра: 1)выбранная строка списка(string), 2)элемент, соответствующий этой строке(любой lua-тип) и 3)имя пользователя, выполнившего клик(string). Поэтому элемент можно достать, например, так: function onListChange(line,item,user) local selectedItem = item end List1=Form1:addList(left,top,onListChange) Кроме того, выбранный элемент списка всегда (не только из onChange) доступен как List1.items[List1.index] 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ov3rwrite 23 Опубликовано: 17 ноября, 2020 8 минут назад, Zer0Galaxy сказал: Порылся в коде и обнаружил, что событие onChange принимает три параметра: 1)выбранная строка списка(string), 2)элемент, соответствующий этой строке(любой lua-тип) и 3)имя пользователя, выполнившего клик(string). Поэтому элемент можно достать, например, так: function onListChange(line,item,user) local selectedItem = item end List1=Form1:addList(left,top,onListChange) Кроме того, выбранный элемент списка всегда (не только из onChange) доступен как List1.items[List1.index] Спасибо за помощь, уже пытался в аргументы совать) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RaX 0 Опубликовано: 12 декабря, 2020 А где можно скачать эту библиотеку? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
serafim 271 Опубликовано: 12 декабря, 2020 16 минут назад, RaX сказал: А где можно скачать эту библиотеку? ссылка на первой странице https://computercraft.ru/topic/1016-lyogkaya-biblioteka-gui/?do=findComment&comment=13883 http://pastebin get iKzRve2g lib/forms.lua Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
AlexCatze 57 Опубликовано: 17 февраля, 2021 В 05.08.2015 в 10:33, Zer0Galaxy сказал: selCol - цвет фона выбранной строки списка (по умолчанию -0x0000ff) selFont - цвет шрифта выбранной строки (по умолчанию - 0xffff00) Не соответствует действительности. Правильно: selColor - цвет фона выбранной строки списка (по умолчанию -0x0000ff) sfColor- цвет шрифта выбранной строки (по умолчанию - 0xffff00) 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
AlexCatze 57 Опубликовано: 26 февраля, 2021 Библиотека очень спасает, вот пытаюсь опровергнуть утверждение, что браузер на ней не построить. Правда не хватает некоторого функционала. Самое желанное, это возможность указать функцию, которая будет вызываться каждый раз после отрисовки формы. Не хватает таких элементов как CheckBox, Selector и ScrollBar. Первые два можно реализовать используя кнопки, но хотелось бы иметь отдельные элементы. По поводу кнопок, в монохромных интерфейсах, выделять большие кнопки, меняя местами цвет фона и текста не всегда получается. Хотелось бы иметь возможность делать вокруг кнопки обводку. Буду очень благодарен, если вышеизложенные функции будут реализованы. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 26 февраля, 2021 11 минуту назад, AlexCatze сказал: Не хватает таких элементов как CheckBox, Selector и ScrollBar. Если есть опыт ООП программирования, могу помочь в создании новых компонентов. Для этого не обязательно менять либу, можно создать свой собственный компонент, который используешь только ты. Если понравится, добавлю компонент в либу, а тебя в соавторы. 13 минуты назад, AlexCatze сказал: Хотелось бы иметь возможность делать вокруг кнопки обводку. Кнопка имеет свойство border. Если его установить в 1 или 2, кнопка получит одинарную или двойную окантовку. Но имей в виду, что размеры кнопки должны быть достаточными что бы вместить надпись и окантовку. Т.е. высота должна быть не менее трех. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
AlexCatze 57 Опубликовано: 26 февраля, 2021 18 минут назад, Zer0Galaxy сказал: Если есть опыт ООП программирования Опыт есть. Сегодня попробую, взяв за основу элемент кнопки. Вечером отпишусь. 19 минут назад, Zer0Galaxy сказал: Кнопка имеет свойство border Спасибо. Как-то сразу не заметил. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах