[mimgui] Combo

EX4MPLYCH

Участник
Автор темы
42
5
Версия MoonLoader
.026-beta
Проблема с combo такая:
Он дублирует элементы два раза

Lua:
imgui.BeginChild('binds_edit', imgui.ImVec2(680, 250), false)
    local itemsList = {u8"Отправить серверу", u8"Вставить в чат", u8"Вывести локально"}
    local items = imgui.new['const char*'][#itemsList](itemsList)
    for l = 1, #tbinder[PickedTab].binds[Pickedbind].lines do
             lines = l
             imgui.SameLine()
             imgui.PushItemWidth(120)
             imgui.Combo("###method", current, items, #itemsList)
    end
imgui.EndChild()
 
Последнее редактирование:
Решение
В таком случае все правильно работает. Но мне нужен был в цикле чтобы рендерились под друг другом
Тебе несколько комбо нужно, я так понимаю?
Сделай так и посмотри.
Lua:
imgui.Combo("##method"..l", ...) -- Где ... - все остальные аргументы как были.
У тебя должно создаться столько комбо, сколько и:
#tbinder[PickedTab].binds[Pickedbind].lines

Dmitriy Makarov

25.05.2021
Проверенный
2,478
1,113
Вынеси переменные itemList, items и перенеси их в начало кода. Под библиотеками.
 

EX4MPLYCH

Участник
Автор темы
42
5
Вынеси переменные itemList, items и перенеси их в начало кода. Под библиотеками.
Не помогло

Кстати лишь верхний combo открывается
 

EX4MPLYCH

Участник
Автор темы
42
5
Может в цикле for тогда дело?)
Попробуй вынести тогда функцию imgui.Combo из цикле. Вставь её пол этим циклом.
В таком случае все правильно работает. Но мне нужен был в цикле чтобы рендерились под друг другом
 

Dmitriy Makarov

25.05.2021
Проверенный
2,478
1,113
В таком случае все правильно работает. Но мне нужен был в цикле чтобы рендерились под друг другом
Тебе несколько комбо нужно, я так понимаю?
Сделай так и посмотри.
Lua:
imgui.Combo("##method"..l", ...) -- Где ... - все остальные аргументы как были.
У тебя должно создаться столько комбо, сколько и:
#tbinder[PickedTab].binds[Pickedbind].lines
 

EX4MPLYCH

Участник
Автор темы
42
5
Тебе несколько комбо нужно, я так понимаю?

Сделай так и посмотри.
Lua:
imgui.Combo("##method"..l", ...) -- Где ... - все остальные аргументы как были.
У тебя должно создаться столько комбо, сколько и:
Спасибо. Помог😘

@Dmitriy Makarov Не знаешь как тут из json брать числовое значение и после выбора в комбо он сохранял это числовое значение?
Lua:
for l = 1, #tbinder[PickedTab].binds[Pickedbind].lines do
                                                            lines = l
                                                            BindLinesEdit = imgui.new.char[256](str(tbinder[PickedTab].binds[Pickedbind].lines[lines].text))
                                                            BindDelayEdit = imgui.new.char[128](encodeJson(tbinder[PickedTab].binds[Pickedbind].lines[lines].delay))
                                                            --Отсюда берет значение из Json
                                                            current = imgui.new.int(tbinder[PickedTab].binds[Pickedbind].lines[lines].method)
                                                            --До "сюда"
                                                            imgui.PushItemWidth(400)
                                                            if imgui.InputText("###BindLinesEdit"..l, BindLinesEdit, sizeof(BindLinesEdit)) then
                                                                  tbinder[PickedTab].binds[Pickedbind].lines[lines].text = str(BindLinesEdit)
                                                            end
                                                            imgui.SameLine()
                                                            imgui.PushItemWidth(120)
                                                            if imgui.InputText("###BindDelayEdit"..l, BindDelayEdit, sizeof(BindDelayEdit)) then
                                                                  tbinder[PickedTab].binds[Pickedbind].lines[lines].delay = decodeJson(str(BindDelayEdit))
                                                            end
                                                            imgui.SameLine()
                                                            imgui.PushItemWidth(120)
                                                            --тут сам комбо
                                                            if imgui.Combo("###method"..l, current, items, 3) then
                                                                  tbinder[PickedTab].binds[Pickedbind].lines[lines].method = items
                                                            end
                                                            --тут сам комбо КОНЕЦ
end
 
Последнее редактирование:
  • Нравится
Реакции: Dmitriy Makarov

Dmitriy Makarov

25.05.2021
Проверенный
2,478
1,113
@Dmitriy Makarov Не знаешь как тут из json брать числовое значение и после выбора в комбо он сохранял это числовое значение?
Не знаю точно, братиш.)
Без компа я как без рук. Я, обычно, тестирую код перед тем, как его дать кому-то.
Попробуй отсюда взять для себя что-то.
 

EX4MPLYCH

Участник
Автор темы
42
5
Не знаю точно, братиш.)
Без компа я как без рук. Я, обычно, тестирую код перед тем, как его дать кому-то.
Попробуй отсюда взять для себя что-то.
Забыл просто к значению обратиться выбранного элемента combo…
Current[0]