InputText

Seaside_

Участник
Автор темы
64
2
Версия MoonLoader
.026-beta
Как сделать чтобы в InputText писался текст звёздочками, и чтобы было введено в поле ввода "Вводить сюда"

Lua:
local password = imgui.ImBuffer(256)

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('test', function() main_window_state.v = not main_window_state.v end)
    sampAddChatMessage('{FFCD0A}Test', -1)

    imgui.Process = false

    while true do
        wait(0)
        imgui.Process = main_window_state.v
        if main_window_state.v == false then
            imgui.Process = false
        end
    end
end

function imgui.OnDrawFrame()
    imgui.SetNextWindowSize(imgui.ImVec2(500, 300), imgui.Cond.FirstUseEver)
    imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))

    imgui.LockPlayer = false
    imgui.Begin(u8'Test', main_window_state)
    imgui.SetCursorPosY(25)
    imgui.SetCursorPosX(50)
    imgui.Text(u8'test')
    imgui.Separator()
    imgui.Text(u8'Пароль от аккаунта:')
    imgui.SameLine()
    imgui.InputText(u8'##Пароль от аккаунта', password)
    imgui.End()
end
 

Seaside_

Участник
Автор темы
64
2
Чтобы были звездочки в поле ввода нужно использовать флаг imgui.InputTextFlags.Password
Пример:
Lua:
local buffer = imgui.ImBuffer(256) -- где-то сверху к глобальным переменным



imgui.InputText("Текст", buffer, imgui.InputTextFlags.Password)
Спасибо, а где можно узнать все флаги InputText?
 

back.DEV

Известный
71
6
А для того чтобы при запуске был уже в поле введен текст нужно использовать файл в котором ты будешь хранить все настройки, можешь посмотреть информацию про inicfg.
Спасибо, а где можно узнать все флаги InputText?
в поиск вбей просто
 

andrey_hacker

Известный
274
88
Lua:
local pokaz = false

            if pokaz then
                imgui.PushItemWidth(250)
                imgui.InputText(u8'Введите пароль от карты', pass)
            else
                imgui.PushItemWidth(250)
                imgui.InputText(u8'Введите пароль от карты', pass, imgui.InputTextFlags.Password)
            end
            imgui.SameLine()
            if imgui.Button(pokaz and u8'Скрыть пароль' or u8'Показать пароль') then
                pokaz = not pokaz
            end
 

Cosmo

Известный
Друг
653
2,724
Спасибо, а где можно узнать все флаги InputText?
Открой библиотеку lib/imgui.lua, там все флаги, какой за что отвечает, узнаешь уже сам.
Lua:
imgui.InputTextFlags = {
    CharsDecimal = 1,
    CharsHexadecimal = 2,
    CharsUppercase = 4,
    CharsNoBlank = 8,
    AutoSelectAll = 16,
    EnterReturnsTrue = 32,
    CallbackCompletion = 64,
    CallbackHistory = 128,
    CallbackAlways = 256,
    CallbackCharFilter = 512,
    AllowTabInput = 1024,
    CtrlEnterForNewLine = 2048,
    NoHorizontalScroll = 4096,
    AlwaysInsertMode = 8192,
    ReadOnly = 16384,
    Password = 32768,
}
 
  • Нравится
Реакции: MLycoris и Vespan

neverlane

t.me/neverlane00
Друг
1,010
1,163
Lua:
local pokaz = false

            if pokaz then
                imgui.PushItemWidth(250)
                imgui.InputText(u8'Введите пароль от карты', pass)
            else
                imgui.PushItemWidth(250)
                imgui.InputText(u8'Введите пароль от карты', pass, imgui.InputTextFlags.Password)
            end
            imgui.SameLine()
            if imgui.Button(pokaz and u8'Скрыть пароль' or u8'Показать пароль') then
                pokaz = not pokaz
            end
Можно еще легче
Lua:
dontshow = true
imgui.InputText(u8'Введите пароль от карты', pass, dontshow and imgui.InputTextFlags.Password or 0)
imgui.SameLine()
if imgui.Button("ShowPass") then
dontshow = not dontshow
end
 
  • Нравится
Реакции: MaksQ и andrey_hacker