проблема с копированием в буфер обмена по кнопке

pudge1337

Новичок
Автор темы
3
0
Версия MoonLoader
.026-beta
у меня есть несколько кнопок, каждая из них должна копировать в буфер обмена определенную информацию, но копирует только самая первая, другие не работают.
Lua:
if imgui.Button("Copy 1") then
    copy1 = setClipboardText("1")
end
if imgui.Button("Copy 2") then
    copy2 = setClipboardText("2")
end
if imgui.Button("Copy 3") then
    copy3 = setClipboardText("3")
end
 
  • Эм
Реакции: Corenale и qdIbp
Решение
Lua:
            if imgui.TreeNodeStr(u8'Таблица оружия') then
                imgui.Columns(3)
                imgui.Text(u8'Предмет') imgui.SetColumnWidth(-1, w.first)
                imgui.NextColumn()
                imgui.Text(u8'ID') imgui.SetColumnWidth(-1, 50)
                imgui.NextColumn()
                imgui.Text(u8'Действие') imgui.SetColumnWidth(-1, 85)
                imgui.Columns(1)
                imgui.Separator()

                imgui.Columns(3)
                imgui.Text(u8'Кастет') imgui.SetColumnWidth(-1, w.first)
                imgui.NextColumn()
                imgui.Text(u8'1') imgui.SetColumnWidth(-1, 50)
                imgui.NextColumn()
                if imgui.Button(u8'Копировать') then...

qdIbp

Автор темы
Проверенный
1,386
1,141
у меня есть несколько кнопок, каждая из них должна копировать в буфер обмена определенную информацию, но копирует только самая первая, другие не работают.
Lua:
if imgui.Button("Copy 1") then
    copy1 = setClipboardText("1")
end
if imgui.Button("Copy 2") then
    copy2 = setClipboardText("2")
end
if imgui.Button("Copy 3") then
    copy3 = setClipboardText("3")
end
Все работает, покажи лучше весь код, может ты его засунул черт пойми куда и из-за все плохо идет
 

pudge1337

Новичок
Автор темы
3
0
Все работает, покажи лучше весь код, может ты его засунул черт пойми куда и из-за все плохо идет


Lua:
            if imgui.TreeNodeStr(u8'Таблица оружия') then
                imgui.Columns(3)
                imgui.Text(u8'Предмет') imgui.SetColumnWidth(-1, w.first)
                imgui.NextColumn()
                imgui.Text(u8'ID') imgui.SetColumnWidth(-1, 50)
                imgui.NextColumn()
                imgui.Text(u8'Действие') imgui.SetColumnWidth(-1, 85)
                imgui.Columns(1)
                imgui.Separator()

                imgui.Columns(3)
                imgui.Text(u8'Кастет') imgui.SetColumnWidth(-1, w.first)
                imgui.NextColumn()
                imgui.Text(u8'1') imgui.SetColumnWidth(-1, 50)
                imgui.NextColumn()
                if imgui.Button(u8'Копировать') then imgui.SetColumnWidth(-1, 85)
                    local copy1 = setClipboardText('1')
                end
                imgui.Columns(1)
                imgui.Separator()

                imgui.Columns(3)
                imgui.Text(u8'Клюшка') imgui.SetColumnWidth(-1, w.first)
                imgui.NextColumn()
                imgui.Text(u8'2') imgui.SetColumnWidth(-1, 50)
                imgui.NextColumn()
                if imgui.Button(u8'Копировать') then imgui.SetColumnWidth(-1, 85)
                    local copy2 = setClipboardText('2')
                end
                imgui.Columns(1)
                imgui.Separator()
1711701437550.png
 
  • Эм
Реакции: Beyyoonddeath и Corenale

СоМиК

Известный
457
310
Lua:
            if imgui.TreeNodeStr(u8'Таблица оружия') then
                imgui.Columns(3)
                imgui.Text(u8'Предмет') imgui.SetColumnWidth(-1, w.first)
                imgui.NextColumn()
                imgui.Text(u8'ID') imgui.SetColumnWidth(-1, 50)
                imgui.NextColumn()
                imgui.Text(u8'Действие') imgui.SetColumnWidth(-1, 85)
                imgui.Columns(1)
                imgui.Separator()

                imgui.Columns(3)
                imgui.Text(u8'Кастет') imgui.SetColumnWidth(-1, w.first)
                imgui.NextColumn()
                imgui.Text(u8'1') imgui.SetColumnWidth(-1, 50)
                imgui.NextColumn()
                if imgui.Button(u8'Копировать') then imgui.SetColumnWidth(-1, 85)
                    local copy1 = setClipboardText('1')
                end
                imgui.Columns(1)
                imgui.Separator()

                imgui.Columns(3)
                imgui.Text(u8'Клюшка') imgui.SetColumnWidth(-1, w.first)
                imgui.NextColumn()
                imgui.Text(u8'2') imgui.SetColumnWidth(-1, 50)
                imgui.NextColumn()
                if imgui.Button(u8'Копировать') then imgui.SetColumnWidth(-1, 85)
                    local copy2 = setClipboardText('2')
                end
                imgui.Columns(1)
                imgui.Separator()
Посмотреть вложение 235841
проблема в том, что у тебя 2 и более кнопкок с одинаковыми str_id. str_id должен быть уникальным параметром у всех кнопок в ImGui, в твоём случае, "u8'Копировать'" это и есть str_id. Чтобы решить проблему, замени каждую кнопку "u8'Копировать'" на 'u8"Копиповать##' .. unique_value". В качестве unique_value у каждой кнопки нужно указать разное значение, например у первой кнопки может стоять "test1", т.е "u8'Копиповать##test1'", у второй может стоять 'test2', т.е "u8'Копиповать##test2'"

Так ты казалось бы поменяешь текст в кнопках, но нет, это не так, поскольку ImGui не отображает всё, что идёт после "##", а баг пофиксится, потому что фактически кнопки будут иметь разный str_id
 
  • Нравится
Реакции: pudge1337