1. Сделать кнопку на другом месте.
2. При переходе на экран блокировать нажатие кнопок на некоторое время.
1. Сделать кнопку на другом месте.
2. При переходе на экран блокировать нажатие кнопок на некоторое время.
спасибо конечно за попытку помочь, но до 1. я и сам давно додумался, но располагать в шахматном порядке кнопки на страничках некрасиво, а вариант 2. конечно возможен, но не красив и трудоёмок (страниц и кнопок много)..
Кроме того заметил что если кнопку сильно нагрузить несколькими заданиями, она становится "капризной" и иногда
не выполняет заложенные функции- после касания нажимается, отпускается и ... перехода на другую страницу не происходит, при повторном касании всё прооходит штатно. Возможно конечно что это не аккуратные касания, при которых палец касается не только кнопки, но и области экрана рядом (экранчик у СПК107 мал, его использую для отладки программ для СПК110).
Кстати одну кнопку сделал из прямоугольника, для незаметного перехода на страничку настроек, так она вообще через раз срабатывает...
И ещё, убрал из программы так дорогой мне график, т.е. элемент Trace и сразу куда-то девались зависания панели, а жаль
столько времени потратил на эти графики..
Сейчас визуализация у меня в "свободном выполнении", и это кажется мне оптимальным. А эффект не срабатывающей клавиши
наверно всё-таки из-за относительно маленьких (для СПК107) клавиш и случайного касания других частей экрана, а так же не одинаковой чувствительности разных частей экрана. Кроме того, был отключен курсор, может это и мистика, но с его включением этот эффект пропал.. какие-то рождественские сказки
RomAl, чтобы исключить нажатие других частей экрана пользуйся стилусом (карандаш и т.д.), экран резистивный. Делал проект с большой плотностью кнопок и окон, и часто уходил в соседнее окно... помучавшись, стал пользоваться тупой стороной карандаша - стало удобно!
Можно не нагружать кнопки, а вставить 10 строк в начале блока, если еще не нашли более красивого решения
Код:TON1(PT:=t#1s); (*задержка обработки нажатий кнопок на 1 секунду при смене экрана*) IF num <> old_num THEN (*если номер экрана изменился*) TON1(IN:=TRUE); (*включаем таймер*) IF NOT TON1.Q THEN (*если время еще не вышло*) RETURN; (*выходим из блока, все что ниже не будет выполняться*) ELSE (*если время вышло*) TON1.IN:=FALSE; (*отключаем таймер*) old_num:=num; (*сохраняем номер текущего экрана*) END_IF END_IF (*ниже должен быть код обработки экранов и нажатий кнопок*)