iup.GetParam в LUA: проверка данных в функции обратного вызова

Новичок LUA, экспериментирующий с использованием GUI iup.GetParam с помощью LUA 5.1,

У меня есть простое использование iup.GetParam (которая отлично работает с простой функцией обратного вызова, проверяющей OK & Cancel), и я пытаюсь добавить некоторую простую проверку данных для параметров (например, проверка параметра на наличие буквенно-цифровых символов), но не уверена в правильности подхода.

Я искал справочное руководство (и для примеров кода), но пока вычеркнул пробел.

  1. Используя пример проверки строки, если я хочу отклонить введенный пользователем символ и отобразить старое значение параметра, я просто return 0 из функции обратного вызова, или я также должен сбросить значение параметра до его предыдущего значения до возврата? Или правильный подход - это нечто совершенно другое?
  2. В любом случае, я должен refresh / update графический интерфейс с отдельным iup звонить или делает GetParam справиться с этим для меня?

Какую бы комбинацию я ни попробовал, она не работает (параметр, к счастью, отображает не алфавитно-цифровые символы). Отладка показывает проверочный тест и возвращает работу в кодированном виде, поэтому я ищу совет получить подтверждение правильного подхода. Делиться простым рабочим примером было бы здорово.

1 ответ

  1. просто верните 0

  2. Нет, IUP сделает все за вас, в этом случае

Загрузите "getparam.wlua" из папки примеров, затем добавьте к его обратному вызову следующее:

  elseif (param_index == 1) then
    return 0

Вы заметите, что целочисленное значение теперь доступно только для чтения.

Другие вопросы по тегам