IMGUI - Исчезновение кнопки А, по нажатию кнопки Б.

Mico

Активный
Автор темы
252
50
Версия MoonLoader
.026-beta
Допустим есть кнопка, закрыть. Я нажимаю и из меню убирается кнопка «Меню информации», и в списке остаются другие кнопки. Еще бы хотелось, чтобы если эта кнопка была первой, то вторая пододвигалась влево. Возможно ли это? И как? Надеюсь понятно :D

p.s данную фигню уже где-то видел.
 
Решение
Создай переменную (например x), которая будет переключаться с true на false например при нажатии одной кнопки, а другую кнопку отрисовывай внутри условия с проверкой этой переменной (if x then --показ кнопки end)
Дополню ответ кодом:
Lua:
if testWindow.v then -- Тестовое окно. Не забудь добавить "local testWindow = imgui.ImBool(false)" перед main().
    imgui.SetNextWindowPos(imgui.ImVec2(resX/2, resY/2), 2, imgui.ImVec2(0.5, 0.5))
    imgui.Begin(u8'testWindow', testWindow, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.AlwaysAutoResize)

        if imgui.Button('Hide') then -- Эта кнопка скроет кнопку "EXAMPLE".
            test = 1 -- Задаём новой, пустой переменной любое значение...

FogRider

Активный
188
70
Допустим есть кнопка, закрыть. Я нажимаю и из меню убирается кнопка «Меню информации», и в списке остаются другие кнопки. Еще бы хотелось, чтобы если эта кнопка была первой, то вторая пододвигалась влево. Возможно ли это? И как? Надеюсь понятно :D

p.s данную фигню уже где-то видел.
Если речь о серверных/локальных диалогах сампа (не имгуи) - можно попробовать при совершении определенного действия над диалогом (отправки ответа, к примеру), отображать точно такой же, но уже без конкретного пункта.

о серверных/локальных диалогах сампа (не имгуи)
А вообще, уточни, что именно из этого тебя интересует.
 

Mico

Активный
Автор темы
252
50
Если речь о серверных/локальных диалогах сампа (не имгуи) - можно попробовать при совершении определенного действия над диалогом (отправки ответа, к примеру), отображать точно такой же, но уже без конкретного пункта.


А вообще, уточни, что именно из этого тебя интересует.
Уточняю - имгуи
 

Aniki

🐰
Администратор
1,234
1,590
Допустим есть кнопка, закрыть. Я нажимаю и из меню убирается кнопка «Меню информации», и в списке остаются другие кнопки. Еще бы хотелось, чтобы если эта кнопка была первой, то вторая пододвигалась влево. Возможно ли это? И как? Надеюсь понятно :D

p.s данную фигню уже где-то видел.
Создай переменную (например x), которая будет переключаться с true на false например при нажатии одной кнопки, а другую кнопку отрисовывай внутри условия с проверкой этой переменной (if x then --показ кнопки end)
 
  • Влюблен
Реакции: Mico

A S K I T

Активный
200
69
Создай переменную (например x), которая будет переключаться с true на false например при нажатии одной кнопки, а другую кнопку отрисовывай внутри условия с проверкой этой переменной (if x then --показ кнопки end)
Дополню ответ кодом:
Lua:
if testWindow.v then -- Тестовое окно. Не забудь добавить "local testWindow = imgui.ImBool(false)" перед main().
    imgui.SetNextWindowPos(imgui.ImVec2(resX/2, resY/2), 2, imgui.ImVec2(0.5, 0.5))
    imgui.Begin(u8'testWindow', testWindow, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.AlwaysAutoResize)

        if imgui.Button('Hide') then -- Эта кнопка скроет кнопку "EXAMPLE".
            test = 1 -- Задаём новой, пустой переменной любое значение.
        end
        if imgui.Button('Show') then -- Эта кнопка покажет кнопку "EXAMPLE".
            test = nil -- Возвращаем переменной значение nil (пусто).
        end
        if test == nil then -- Если переменная "test" пустая, т.е. имеет значение "nil" - выполняем код.
            if imgui.Button('EXAMPLE') then -- Эта кнопка будет скрыта.
                sampAddChatMessage('{068aff}[Кнопка] {ffffff}Спасибо что нажал на меня, я так тебе благодарна!', -1)
            end
        end

    imgui.End()
end

Остальные кнопки двигаются автоматически, после скрытия кнопки "EXAMPLE":
1633331663229.png
1633331676692.png


P.S. Использовал "nil", вместо "false" чтобы не устанавливать значение переменной перед кодом, лишняя строка, как по мне.
 
Последнее редактирование:
  • Влюблен
Реакции: Mico

Mico

Активный
Автор темы
252
50
Создай переменную (например x), которая будет переключаться с true на false например при нажатии одной кнопки, а другую кнопку отрисовывай внутри условия с проверкой этой переменной (if x then --показ кнопки end)
i love you

Дополню ответ кодом:
Lua:
if testWindow.v then -- Тестовое окно. Не забудь добавить "local testWindow = imgui.ImBool(false)" перед main().
    imgui.SetNextWindowPos(imgui.ImVec2(resX/2, resY/2), 2, imgui.ImVec2(0.5, 0.5))
    imgui.Begin(u8'testWindow', testWindow, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.AlwaysAutoResize)

        if imgui.Button('Hide') then -- Эта кнопка скроет кнопку "EXAMPLE".
            test = 1 -- Задаём новой, пустой переменной любое значение.
        end
        if imgui.Button('Show') then -- Эта кнопка покажет кнопку "EXAMPLE".
            test = nil -- Возвращаем переменной значение nil (пусто).
        end
        if test == nil then -- Если переменная "test" пустая, т.е. имеет значение "nil" - выполняем код.
            if imgui.Button('EXAMPLE') then -- Эта кнопка будет скрыта.
                sampAddChatMessage('{068aff}[Кнопка] {ffffff}Спасибо что нажал на меня, я так тебе благодарна!', -1)
            end
        end

    imgui.End()
end

Остальные кнопки двигаются автоматически, после скрытия кнопки "EXAMPLE":
Посмотреть вложение 116735Посмотреть вложение 116736

P.S. Использовал "nil", вместо "false" чтобы не устанавливать значение переменной перед кодом, лишняя строка, как по мне.
Спасибо! Обожаю, тебя)
 
  • Нравится
Реакции: A S K I T