клик по элементу imgui.Combo

Hinаta

Известный
Автор темы
784
356
Версия MoonLoader
.026-beta
mimgui
Можно ли как-то получить(отследить) клик по отдельному элементу списка imgui.Combo?

1698692220322.png

1698692240856.png
 
Решение
Мне нужно обработать КЛИК по элементу, а не значение
ну так ты сам кинул скрин что для отслеживания клика юзаешь if imgui.combo then, внутри этого условия проверяй по dp_combo какой сейчас элемент кликнут
Lua:
if imgui.Combo('label', dp_combo, imItems, #dp_list) then
    sampAddChatMessage('ты клкинул на №' .. dp_combo[0]+1 .. ' со значением ' .. dp_list[dp_combo[0]+1], -1)
end

bulba$h

Активный
332
91
mimgui
Можно ли как-то получить(отследить) клик по отдельному элементу списка imgui.Combo?

Посмотреть вложение 219542
Посмотреть вложение 219543
там в примерах есть такое

Lua:
local imgui = require 'mimgui' -- подключаем библиотеку мимгуи

local encoding = require 'encoding' -- подключаем библиотеку для работы с разными кодировками
encoding.default = 'CP1251' -- задаём кодировку по умолчанию
local u8 = encoding.UTF8 -- это позволит нам писать задавать названия/текст на кириллице

local ComboTest = imgui.new.int() -- создаём буффер для комбо
local item_list = {u8'Раз', u8'Два'} -- создаём список
local ImItems = imgui.new['const char*'][#item_list](item_list)


local new = imgui.new -- создаём короткий псевдоним для удобства
local WinState = new.bool() -- создаём буффер для открытия окна

imgui.OnFrame(function() return WinState[0] end,
    function(player)
        imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5)) -- отвечает за положение окна на экране
        imgui.SetNextWindowSize(imgui.ImVec2(245, 280), imgui.Cond.Always) -- отвечает за размер окна
        imgui.Begin(u8'Основное', WinState, imgui.WindowFlags.NoResize) -- отвечает за отображение окна, его заголовок и флаги
        imgui.Combo(u8'Список',ComboTest,ImItems, #item_list)
        -- можно вывести выбранную строку комбо в текст следующим образом
        local combotext = item_list[ComboTest[0]+1]
        imgui.Text(combotext)
        imgui.End()
    end
)


function main()
    sampRegisterChatCommand('cmd', function() WinState[0] = not WinState[0] end) -- команда по которой будет вызываться наше окно
    wait(-1)
end
 

Hinаta

Известный
Автор темы
784
356
там в примерах есть такое

Lua:
local imgui = require 'mimgui' -- подключаем библиотеку мимгуи

local encoding = require 'encoding' -- подключаем библиотеку для работы с разными кодировками
encoding.default = 'CP1251' -- задаём кодировку по умолчанию
local u8 = encoding.UTF8 -- это позволит нам писать задавать названия/текст на кириллице

local ComboTest = imgui.new.int() -- создаём буффер для комбо
local item_list = {u8'Раз', u8'Два'} -- создаём список
local ImItems = imgui.new['const char*'][#item_list](item_list)


local new = imgui.new -- создаём короткий псевдоним для удобства
local WinState = new.bool() -- создаём буффер для открытия окна

imgui.OnFrame(function() return WinState[0] end,
    function(player)
        imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5)) -- отвечает за положение окна на экране
        imgui.SetNextWindowSize(imgui.ImVec2(245, 280), imgui.Cond.Always) -- отвечает за размер окна
        imgui.Begin(u8'Основное', WinState, imgui.WindowFlags.NoResize) -- отвечает за отображение окна, его заголовок и флаги
        imgui.Combo(u8'Список',ComboTest,ImItems, #item_list)
        -- можно вывести выбранную строку комбо в текст следующим образом
        local combotext = item_list[ComboTest[0]+1]
        imgui.Text(combotext)
        imgui.End()
    end
)


function main()
    sampRegisterChatCommand('cmd', function() WinState[0] = not WinState[0] end) -- команда по которой будет вызываться наше окно
    wait(-1)
end
Мне нужно обработать КЛИК по элементу, а не значение
 

MrDorlik

Известный
977
390
Мне нужно обработать КЛИК по элементу, а не значение
ну так ты сам кинул скрин что для отслеживания клика юзаешь if imgui.combo then, внутри этого условия проверяй по dp_combo какой сейчас элемент кликнут
Lua:
if imgui.Combo('label', dp_combo, imItems, #dp_list) then
    sampAddChatMessage('ты клкинул на №' .. dp_combo[0]+1 .. ' со значением ' .. dp_list[dp_combo[0]+1], -1)
end
 
Последнее редактирование:
  • Нравится
Реакции: ChromiusJ и Hinаta