Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ Плагины и доп. ПО _ lua prompt

Автор: cirus 23.1.2021, 16:28

Прикрепленный файл  Prompt.zip ( 5,09 килобайт ) Кол-во скачиваний: 316

Архив распаковать, файлы закинуть в папку с exe пилота.

Запрос на выбор значения
Код
--lua
local h = require'prompt'

-- установить позицию окна
h.promptposX = 500
h.promptposY = 300
-- вывод окна с вариантами выбора
local result = h.lua_prompt('первый', 'второй выбор', 'третий')
hint (result)
if result == 0 then
    log('Ничего не выбрано')
end
if result == 1 then
    log('Выбран пункт 1')
end
if result == 2 then
    log('Выбран пункт 2')
end
if result == 3 then
    log('Выбран пункт 3')
end

Передача таблицы в окно выбора
Код
--lua
local h = require'prompt'

-- установить позицию окна
h.promptposX = 500
h.promptposY = 300

-- вывод окна с вариантами выбора
local array = {'первый', 'второй выбор', 'третий'}
local result = h.lua_prompt(array)   -- передаём таблицу
hint (result)
if result == 0 then
    log('Ничего не выбрано')
end
if result == 1 then
    log('Выбран пункт 1')
end
if result == 2 then
    log('Выбран пункт 2')
end
if result == 3 then
    log('Выбран пункт 3')
end

Запрос на ввод значения
Код
--lua
local h = require'prompt'

log 'clear' log 'mode compact'

h.promptposX = 500
h.promptposY = 300
local result = h.lua_prompt_edit()
log(result)

Запрос на выбор нескольких значений
Код
--lua
local h = require'prompt'
local t = {'Год', 'Месяц', 'День'}

log 'clear' log 'mode compact'

h.promptposX = 500
h.promptposY = 300
local result = h.lua_prompt_check(t)
log(result)
log (table.concat(result, ' '))

Автор: фонарик 4.4.2021, 22:03

Никак не получается в качестве выбора Prompt передать значения в виде массива или какой-то правильной строки unsure.gif Такое вообще возможно?

Цитата
local result = h.lua_prompt('первый', 'второй выбор', 'третий')

Автор: cirus 4.4.2021, 23:00

Обновил архив, теперь можно передать таблицу в качестве аргумента.

Автор: фонарик 4.4.2021, 23:22

Товарищ cirus, огромное вам спасибо thumb.gif

Автор: фонарик 6.4.2021, 19:56

Возникает очень неприятная ситуация, если, например, во время отображения сгенерированного окошка с выбором остановить скрипт. Т.е не сделать никакого выбора и нажать скрипту стоп-кнопку или еще как-то. В итоге окошко с выбором зависает, его не закрыть ни выбрать ничего, сам пилот зависает. Остаётся только завершать задачу. Может, это моя личная проблема, не хватает каких-то библиотек rolleyes.gif Если у вас будет время, проверьте, пожалуйста, данную ситуацию.

Автор: cirus 7.4.2021, 1:31

Цитата
во время отображения сгенерированного окошка с выбором остановить скрипт.

Так нельзя делать.

Автор: фонарик 10.4.2021, 23:10

товарищ cirus, а есть ли у вашего замечательного плагина планы на развитие? Например, варианты Prompt с вводом строкового значения или режим с галочками?

Код
set $a prompt (подсказка)
set %с prompt (выбор1 выбор2 выбор3 выбор4 выбор5)
end_script

Автор: cirus 10.4.2021, 23:12

Обновил архив.
Добавил вызов окна с полем для ввода значения. Возвращает текст из строки при нажатии кнопки Ok.
Добавил вызов окна в возможностью выбора нескольких значений. Возвращает массив в виде 1 0 1, где 1 - галочка выбрана, 0 - не выбрана.

Автор: Madeus 11.4.2021, 1:14

Цитата(cirus @ 10.4.2021, 23:12) *

Обновил архив.
Добавил вызов окна с полем для ввода значения. Возвращает текст из строки при нажатии кнопки Ok.
Добавил вызов окна в возможностью выбора нескольких значений. Возвращает массив в виде 1 0 1, где 1 - галочка выбрана, 0 - не выбрана.

Мб лучше true/false?

Автор: cirus 11.4.2021, 2:04

Цитата
Мб лучше true/false?

Sendmessage возвращает:
Код
#define BST_UNCHECKED      0x0000
#define BST_CHECKED        0x0001

Для обывателей 1 и 0 понятнее чем true/false. К тому же лучше чтобы не было расхождения с пилотным prompt.

Автор: фонарик 11.4.2021, 16:08

Товарищ cirus, огромное вам спасибо thanks.gif Благодаря вам, один обыватель точно стал счастливее sun.gif И как только люди раньше пользовались луа без вашего плагина unsure.gif

Автор: фонарик 16.4.2021, 18:31

А можно как-нибудь окошку с выбором поставить атрибут "Поверх всех окон"? У меня окошко с выбором не хочет вылезать поверх окошка мониторинга удаленного монитора например, вообще никак не вытащить поверх. А в обычном приложении если промазал по окошку потом ищи куда оно там спряталось unsure.gif

Автор: cirus 17.4.2021, 2:05

Цитата
А можно как-нибудь окошку с выбором поставить атрибут "Поверх всех окон"?

Обновил архив. Теперь окно создаётся со стилем WS_EX_TOPMOST.

Автор: фонарик 17.4.2021, 15:45

Крутяк, теперь окошко всегда поверх всего остального и не прячется без разрешения biggrin.gif Товарищ cirus, ваш плагин теперь не просто очень полезная вещь, но ещё и очень удобная thanks.gif Большое вам спасибо smile.gif

Автор: Shtorm 21.12.2021, 16:48

Добры вечер. Подскажте как сделать prompt в этом коде. как не пытался сделать не выходит. Ищет не то что выбрал.
Итог должен быть. Что бы показывал 1 - выводить окно выбора предмета, 0 - не выводить. И искал только выбраные картинки.

::start::

local startX, startY, endX, endY = 445, 140, 754, 384 -- координаты поиска
local path = [[C:\pilot]]

local image = {"Гарик", "Фим", "Рок"} -- Именами картинок
hint ("Всего картинок для поиска " .. #image)
for i=1, #image do
local arr, a = findimage (startX, startY, endX, endY, {path .. "\\" .. image[i] .. ".bmp"}, 2) -- поиск картинки
if arr then

wait (300 + math.random (300))

kleft (arr[1][1], arr[1][2])
wait (300 + math.random (200))
kleft (arr[1][1]+ 75, arr[1][2]+ 11)
wait(350 + math.random(300))

log ("Изображение Найдено")
alarm ()
wait (500)
else
log ("Изображение не Найдено")
end
end
wait (300)
goto start

Автор: cirus 21.12.2021, 17:02

Код
--lua
local h = require'prompt'
local image = {"Гарик", "Фим", "Рок"}
local result = {1, 1, 1}
log 'clear' log 'mode compact'

local show_prompt = 1    -- 1 показывать окно выбора, 0 не показывать

h.promptposX = 500
h.promptposY = 300

if show_prompt == 1 then
    result = h.lua_prompt_check(image)
end

for i=1, #image do
    if result[i] == 1 then
        log (image[i])
        -- тут findimage
    end
end

Автор: Shtorm 21.12.2021, 17:06

Спасибо. Большое.

Автор: фонарик 4.2.2024, 23:32

Здравствуйте товарищ cirus. Получилось так, что необходимо вывести много значений в промпт для мультивыбора. Но если число строк не вмещается в высоту рабочего стола, то получается что ничего выбрать и не получится sad.gif Нельзя ли сделать полосу прокрутки например? Или чтобы значения разделялись, например, в 2 столбика, если по высоте не влезают? Было бы очень здорово, если бы можно было бы оперировать большим количеством значений unsure.gif

Код
--lua
local Lines = {}

for x = 1, 55, 1 do
  table.insert (Lines, "Строка_"..x);
end

local ffi = require("ffi")
local h = require'prompt'
local result = h.lua_prompt_check(Lines)
Прикрепленное изображение

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)