Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> lua prompt
cirus
сообщение 23.1.2021, 16:28
Сообщение #1


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26689
Пользователь №: 16.971
Возраст: 29



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

Архив распаковать, файлы закинуть в папку с 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, ' '))
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
фонарик
сообщение 4.4.2021, 22:03
Сообщение #2


****

Apprentice
Сообщений: 145
Регистрация: 23.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.305



Никак не получается в качестве выбора Prompt передать значения в виде массива или какой-то правильной строки (IMG:style_emoticons/default/unsure.gif) Такое вообще возможно?
Цитата
local result = h.lua_prompt('первый', 'второй выбор', 'третий')
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 4.4.2021, 23:00
Сообщение #3


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26689
Пользователь №: 16.971
Возраст: 29



Обновил архив, теперь можно передать таблицу в качестве аргумента.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
фонарик
сообщение 4.4.2021, 23:22
Сообщение #4


****

Apprentice
Сообщений: 145
Регистрация: 23.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.305



Товарищ cirus, огромное вам спасибо (IMG:style_emoticons/default/thumb.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
фонарик
сообщение 6.4.2021, 19:56
Сообщение #5


****

Apprentice
Сообщений: 145
Регистрация: 23.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.305



Возникает очень неприятная ситуация, если, например, во время отображения сгенерированного окошка с выбором остановить скрипт. Т.е не сделать никакого выбора и нажать скрипту стоп-кнопку или еще как-то. В итоге окошко с выбором зависает, его не закрыть ни выбрать ничего, сам пилот зависает. Остаётся только завершать задачу. Может, это моя личная проблема, не хватает каких-то библиотек (IMG:style_emoticons/default/rolleyes.gif) Если у вас будет время, проверьте, пожалуйста, данную ситуацию.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 7.4.2021, 1:31
Сообщение #6


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26689
Пользователь №: 16.971
Возраст: 29



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

Так нельзя делать.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
фонарик
сообщение 10.4.2021, 23:10
Сообщение #7


****

Apprentice
Сообщений: 145
Регистрация: 23.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.305



товарищ cirus, а есть ли у вашего замечательного плагина планы на развитие? Например, варианты Prompt с вводом строкового значения или режим с галочками?
Код
set $a prompt (подсказка)
set %с prompt (выбор1 выбор2 выбор3 выбор4 выбор5)
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 10.4.2021, 23:12
Сообщение #8


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26689
Пользователь №: 16.971
Возраст: 29



Обновил архив.
Добавил вызов окна с полем для ввода значения. Возвращает текст из строки при нажатии кнопки Ok.
Добавил вызов окна в возможностью выбора нескольких значений. Возвращает массив в виде 1 0 1, где 1 - галочка выбрана, 0 - не выбрана.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 11.4.2021, 1:14
Сообщение #9


****

Apprentice
Сообщений: 283
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8421
Пользователь №: 19.451
Возраст: 32



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

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

Мб лучше true/false?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 11.4.2021, 2:04
Сообщение #10


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26689
Пользователь №: 16.971
Возраст: 29



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

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

Для обывателей 1 и 0 понятнее чем true/false. К тому же лучше чтобы не было расхождения с пилотным prompt.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
фонарик
сообщение 11.4.2021, 16:08
Сообщение #11


****

Apprentice
Сообщений: 145
Регистрация: 23.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.305



Товарищ cirus, огромное вам спасибо (IMG:style_emoticons/default/thanks.gif) Благодаря вам, один обыватель точно стал счастливее (IMG:style_emoticons/default/sun.gif) И как только люди раньше пользовались луа без вашего плагина (IMG:style_emoticons/default/unsure.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
фонарик
сообщение 16.4.2021, 18:31
Сообщение #12


****

Apprentice
Сообщений: 145
Регистрация: 23.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.305



А можно как-нибудь окошку с выбором поставить атрибут "Поверх всех окон"? У меня окошко с выбором не хочет вылезать поверх окошка мониторинга удаленного монитора например, вообще никак не вытащить поверх. А в обычном приложении если промазал по окошку потом ищи куда оно там спряталось (IMG:style_emoticons/default/unsure.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 17.4.2021, 2:05
Сообщение #13


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26689
Пользователь №: 16.971
Возраст: 29



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

Обновил архив. Теперь окно создаётся со стилем WS_EX_TOPMOST.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
фонарик
сообщение 17.4.2021, 15:45
Сообщение #14


****

Apprentice
Сообщений: 145
Регистрация: 23.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.305



Крутяк, теперь окошко всегда поверх всего остального и не прячется без разрешения (IMG:style_emoticons/default/biggrin.gif) Товарищ cirus, ваш плагин теперь не просто очень полезная вещь, но ещё и очень удобная (IMG:style_emoticons/default/thanks.gif) Большое вам спасибо (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shtorm
сообщение 21.12.2021, 16:48
Сообщение #15


*

Registred
Сообщений: 2
Регистрация: 21.12.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.154
Возраст: 21



Добры вечер. Подскажте как сделать 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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 21.12.2021, 17:02
Сообщение #16


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26689
Пользователь №: 16.971
Возраст: 29



Код
--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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shtorm
сообщение 21.12.2021, 17:06
Сообщение #17


*

Registred
Сообщений: 2
Регистрация: 21.12.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.154
Возраст: 21



Спасибо. Большое.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
фонарик
сообщение 4.2.2024, 23:32
Сообщение #18


****

Apprentice
Сообщений: 145
Регистрация: 23.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.305



Здравствуйте товарищ cirus. Получилось так, что необходимо вывести много значений в промпт для мультивыбора. Но если число строк не вмещается в высоту рабочего стола, то получается что ничего выбрать и не получится (IMG:style_emoticons/default/sad.gif) Нельзя ли сделать полосу прокрутки например? Или чтобы значения разделялись, например, в 2 столбика, если по высоте не влезают? Было бы очень здорово, если бы можно было бы оперировать большим количеством значений (IMG:style_emoticons/default/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)
Прикрепленное изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 17.4.2024, 2:21
Designed by Nickostyle