текст в имгуи

Savchik Blazer

Но я, мечту свою лелея...
Автор темы
Проверенный
667
294
Версия MoonLoader
.026-beta
как сделать чтобы текст оставался в имгуи окне и чтобы каждое сообщение отображалось. то есть я пишу над строкой ввода появляется текст с сообщением пишу еще раз предыдущее сообщение сдвигается вверх появляется новое
 

Вложения

  • ScreenRecorderProject11.gif
    ScreenRecorderProject11.gif
    2.4 MB · Просмотры: 30
Решение
Lua:
local imgui = require('imgui')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
        
local window = imgui.ImBool(false)
local list = {}
local input = imgui.ImBuffer(256)       

function main()
    while not isSampAvailable() do wait(200) end
    imgui.Process = false
    window.v = true  --show window on start
    while true do
        wait(0)
        imgui.Process = window.v
    end
end
        
function imgui.OnDrawFrame()
    if window.v then
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 300, 300 -- WINDOW SIZE
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 2 - sizeX / 2, resY / 2 - sizeY / 2), imgui.Cond.FirstUseEver)...

YarikVL

Известный
Проверенный
4,738
1,816
как сделать чтобы текст оставался в имгуи окне и чтобы каждое сообщение отображалось. то есть я пишу над строкой ввода появляется текст с сообщением пишу еще раз предыдущее сообщение сдвигается вверх появляется новое
Записывай в таблицу этим table.insert(table, peremennaya) и потом циклом for выводи так for i = 1, table do
 

chapo

tg/inst: @moujeek
Всефорумный модератор
9,097
12,127
Lua:
local imgui = require('imgui')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
        
local window = imgui.ImBool(false)
local list = {}
local input = imgui.ImBuffer(256)       

function main()
    while not isSampAvailable() do wait(200) end
    imgui.Process = false
    window.v = true  --show window on start
    while true do
        wait(0)
        imgui.Process = window.v
    end
end
        
function imgui.OnDrawFrame()
    if window.v then
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 300, 300 -- WINDOW SIZE
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 2 - sizeX / 2, resY / 2 - sizeY / 2), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
        imgui.Begin('Window Title', window)
        
        local size = imgui.GetWindowSize()
        imgui.SetCursorPos(imgui.ImVec2(5, 40))
        imgui.BeginChild('messages', imgui.ImVec2(size.x - 10, size.y - 40 - 5 - 25), true)
        imgui.TextWrapped(table.concat(list, '\n'))
        imgui.EndChild()

        imgui.InputText('##input', input)
        imgui.SameLine()
        if imgui.Button('ADD') then
            table.insert(list, input.v)
        end
        imgui.End()
    end
end
 
  • Нравится
Реакции: YarikVL

Savchik Blazer

Но я, мечту свою лелея...
Автор темы
Проверенный
667
294
Lua:
local imgui = require('imgui')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
       
local window = imgui.ImBool(false)
local list = {}
local input = imgui.ImBuffer(256)      

function main()
    while not isSampAvailable() do wait(200) end
    imgui.Process = false
    window.v = true  --show window on start
    while true do
        wait(0)
        imgui.Process = window.v
    end
end
       
function imgui.OnDrawFrame()
    if window.v then
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 300, 300 -- WINDOW SIZE
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 2 - sizeX / 2, resY / 2 - sizeY / 2), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
        imgui.Begin('Window Title', window)
       
        local size = imgui.GetWindowSize()
        imgui.SetCursorPos(imgui.ImVec2(5, 40))
        imgui.BeginChild('messages', imgui.ImVec2(size.x - 10, size.y - 40 - 5 - 25), true)
        imgui.TextWrapped(table.concat(list, '\n'))
        imgui.EndChild()

        imgui.InputText('##input', input)
        imgui.SameLine()
        if imgui.Button('ADD') then
            table.insert(list, input.v)
        end
        imgui.End()
    end
end
еще один вопрос. Как изменить положение текста?