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

"Лёгкая" библиотека GUI

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

16 минут назад, bes_zensuri1 сказал:

Не знаете в чем может быть проблема?

Текст кнопки должен быть строкой, а не числом - я так понимаю

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


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

Еще раз здравствуйте. Из-за чего может не отписовываться элемент, а именно текст. При запуске программы он на месте, но после запуска функции экран никак не меняется.

Скрытый текст

function ruletka()
    loadItems2(spisok, multyplier)
    Label23.caption = ""
    Label23:redraw()
    y = 11
    for i = 1, 26 do
        name = spisok[1].item
        y = y + 1 
        for x = i,y do
            name = spisok[x].item
            Label23.caption = Label23.caption.."\n"..name
            Label23:redraw()
        end
        os.sleep(0.1)
        Label23.caption = " "
        Label23:redraw()
    end
    for x = 27,y+1 do
    name = spisok[x].item
    Label23.caption = Label23.caption.."\n"..name
    Label23:redraw()
    end
    for i = 1, #spisok do
        table.remove(spisok)
    end
end

 

Label23=Form2:addLabel(44,7,"")
Label23.color = 0x000000
 

 

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


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, bes_zensuri1 сказал:

...

Когда вызывается функция ruletka? Хотелось бы весь текст программы глянуть.

Каково содержимое таблицы spisok после вызова loadItems2?

Зачем задавать name = spisok[1].item если тут же name снова переопределяется name = spisok[x].item?

Что вообще делает  loadItems2 для меня осталось загадкой. Многократно переопределяет Label23.caption, а потом очищает его. Зачем? Если имеется в виду, что там должны промелькнуть какие то буквы, то используй таймер, а не sleep иначе рискуешь потерять события.

После завершения цикла for i = 1, 26 do значение переменной y всегда будет равняться 37. А значит цикл for x = 27,y+1 do выполнится от 27 до 38. Определены ли элементы spisok для таких x и чем определены?

Научись давать правильные имена переменным. Label23 ни о чем не говорит. Через неделю ты сам забудешь что эта метка содержит.

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


Ссылка на сообщение
Поделиться на других сайтах
В 20.02.2022 в 14:47, bes_zensuri1 сказал:

Еще раз здравствуйте. Из-за чего может не отписовываться элемент, а именно текст. При запуске программы он на месте, но после запуска функции экран никак не меняется.

  Показать содержимое

function ruletka()
    loadItems2(spisok, multyplier)
    Label23.caption = ""
    Label23:redraw()
    y = 11
    for i = 1, 26 do
        name = spisok[1].item
        y = y + 1 
        for x = i,y do
            name = spisok[x].item
            Label23.caption = Label23.caption.."\n"..name
            Label23:redraw()
        end
        os.sleep(0.1)
        Label23.caption = " "
        Label23:redraw()
    end
    for x = 27,y+1 do
    name = spisok[x].item
    Label23.caption = Label23.caption.."\n"..name
    Label23:redraw()
    end
    for i = 1, #spisok do
        table.remove(spisok)
    end
end

 

Label23=Form2:addLabel(44,7,"")
Label23.color = 0x000000
 

 

О, привет, Бес.

Рулетку сам кодишь?

Изменено пользователем kaka888

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


Ссылка на сообщение
Поделиться на других сайтах
В 29.07.2015 в 19:02, Zer0Galaxy сказал:

pastebin get iKzRve2g lib/forms.lua

Конечно, браузер на такой библиотеке не построить, но для небольших приложений может сгодится.

 

Библиотека позволяет создавать следующие визуальные компоненты:

Form (форма) - является контейнером для остальных компонентов. Служит для быстрой смены экранного интерфейса без необходимости удалять и создавать компоненты.

Button (кнопка) - тут всё понятно.

Label (метка) - просто строка текста.

Edit (окно ввода) - позволяет вводить текст.

Frame (рамка) - просто рамка.

List (список) - отображается в виде набора строк. Каждой строке ставится в соответствие элемент, способный хранить любое lua-значение (число, строку, таблицу и т.д.). Пользователь может прокручивать список, выбирать один из элементов, производить сортировку списка.

И невизуальные компоненты:

Event (событие) - обрабатывает системные события.

Timer (таймер) - позволяет вызывать функцию-обработчик с заданным периодом.

 

Пример работы с библиотекой:

 

  Показать содержимое

 



forms=require("forms")         -- подключаем библиотеку

Form1=forms.addForm()          -- создаем основную форму

exitForm=forms.addForm()       -- и форму диалога выхода
exitForm.border=2
exitForm.W=31
exitForm.H=7
exitForm.left=math.floor((Form1.W-exitForm.W)/2)
exitForm.top =math.floor((Form1.H-exitForm.H)/2)
exitForm:addLabel(8,3,"Вы хотите выйти?")
exitForm:addButton(5,5,"Да",function() forms.stop() end)
exitForm:addButton(18,5,"Нет",function() Form1:setActive() end)

Btn1=Form1:addButton(65,21,"Выход",function() exitForm:setActive() end) -- создаем кнопку выхода
Btn1.color=0x505050                       -- задаем цвет кнопки

forms.run(Form1)               --запускаем gui 

 

 

 

Попробовать библиотеку в действии можно в дата-центре на компьютере с координатами 10150, 14199. Для этого необходимо запустить файл form.lua

Привет. Эта библиотека есть на GitHub? Она с 2015 года ни разу не обновлялась?

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


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

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

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

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

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

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

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

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

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


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