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

Лидеры


Популярный контент

Показан контент с высокой репутацией 01.03.2021 во всех областях

  1. 1 балл
    pastebin get iKzRve2g lib/forms.lua Конечно, браузер на такой библиотеке не построить, но для небольших приложений может сгодится. Библиотека позволяет создавать следующие визуальные компоненты: Form (форма) - является контейнером для остальных компонентов. Служит для быстрой смены экранного интерфейса без необходимости удалять и создавать компоненты. Button (кнопка) - тут всё понятно. Label (метка) - просто строка текста. Edit (окно ввода) - позволяет вводить текст. Frame (рамка) - просто рамка. List (список) - отображается в виде набора строк. Каждой строке ставится в соответствие элемент, способный хранить любое lua-значение (число, строку, таблицу и т.д.). Пользователь может прокручивать список, выбирать один из элементов, производить сортировку списка. И невизуальные компоненты: Event (событие) - обрабатывает системные события. Timer (таймер) - позволяет вызывать функцию-обработчик с заданным периодом. Пример работы с библиотекой: Попробовать библиотеку в действии можно в дата-центре на компьютере с координатами 10150, 14199. Для этого необходимо запустить файл form.lua
  2. 1 балл
    Кажется понял о чем ты. Нужно дать возможность получать доступ к родительскому объекту. В принципе, этот доступ есть через метатаблицу: getmetatable(self).draw(self) -- вызываем родительский метод Коряво, конечно. Нужно будет подумать над чем-то вроде: self.inherited:draw()
  3. 1 балл
    @AlexCatze, не могу представить зачем нужно событие перерисовки элемента. Ну допустим, я хочу просто посчитать сколько раз была отрисована та или иная кнопка. Лучше сделать это не влезая в метод TComponent:draw, поскольку TComponent:draw вызывается абсолютно для всех компонентов, а меня интересует только одна кнопка. Это делается при помощи магии ООП, называемой полиморфизм. Вот пример кода: Btn1=Form1:addButton(65,21,"Кнопка") -- создаем кнопку Cnt1=Form1:addLabel(10,5,0) -- создадим метку со счетчиком событий function Btn1.onDraw() -- определяем событие onDraw для кнопки Btn1, Cnt1.caption=Cnt1.caption+1 -- которое увеличивает счетчик Cnt1:redraw() -- и перерисовывает метку end function Btn1:draw() -- переопределяем метод draw для кнопки Btn1, в котором TButton.draw(self) -- вызываем родительский метод if self.onDraw then self.onDraw() end -- и если надо, обработчик события onDraw end В этом случае выполнять проверку if self.onDraw не обязательно, поскольку переопределенный метод draw работает только для кнопки Btn1. А метод TComponent:draw остается без изменений. Но поковыряться в библиотеке forms таки придется. Дело в том, что объект TButton является локальным и недоступен во внешних модулях. Просто убери слово local в этой строке: ------------------Button---------------- local TButton=setmetatable({W=10, H=1, color=0x606060, type=function() return "Button" end},TComponent)
  4. 1 балл
    Каждый, кто занимался разработкой человеко-машинного интерфейса под OpenOS, наверное знает какое это муторное занятие. Даже если Вы используете библиотеку GUI. То и дело приходится выходить из редактора кода, запускать свою программу, смотреть на результат своих стараний и снова заходить в редактор, чтобы исправить всего одну цифру. Предлагаемая система позволяет создавать интерфейсы программ не в текстовом редакторе, а в графическом при помощи мыши, но самое главное - результат своей работы Вы можете видеть сразу, не выходя из редактора. Построена система на основе уже известной Вам gui-библиотеки forms. При входе в FormsMaker мы видим пустую форму Щелкните правой кнопкой мыши в любом месте формы после чего откроется окно управления компонентом Выбрав пункт "Свойства Form1" можно (будет) редактировать свойства формы, такие как цвет рамка и т.д. Пункты "Add ..." добавляют на форму соответствующий компонент. Пункт "Проект" позволит управлять проектом: сохранять, компилировать и т.д. Для возврата к редактируемой форме выберите "Отмена" К примеру мы выбрали пункт "Add frame". Это добавит на нашу форму рамку. Таким же образом на рамку можно добавить кнопку. Щелкаем ПКМ на рамку и выбираем "Add button" Изменить размер рамки можно при помощи ЛКМ, потянув за правый-нижний ее угол А перемещать рамку по форме можно перетаскивая за любое свободное её место pastebin get wA5KMKav fmaker.lua Приму с благодарностью любую посильную помощь в развитии проекта, как в программировании, тестировании так и просто советом.
  5. 1 балл
    У Зер0 всегда крутые проги получаются.
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...