Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Блокировка вставки текста в поля ввода



Для защиты полей ввода Edit от вставки текстовых значений при помощи системного всплывающего меню необходимо запретить появление стандартного меню при щелчке правой кнопкой мыши над полем ввода Edit. Для этого необходимо разместить на форме компонент PopupMenu и назначить его полям ввода, выбрав в Инспекторе Объектов на закладке Events или Properties пункт PopupMenu. В этом случае назначение пустого всплывающего меню перекроет возможность появления системного контекстного меню.

Для предотвращения вставки текста в поля ввода с использованием сочетания клавиш Ctrl+V или Shift+Insert нужно создать обработчик для события OnKeyDown или OnKeyUp:

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if (key=vk_insert) then key:=0;

end;

2.3. Использование блока try…except для проверки ввода

Одним из вариантов повышения безопасности программы является использование блоков try…exceptдляобработки исключительных ситуаций (ИС). В разделах 2.1 и 2.2 был предложен механизм создания обработчиков событий OnKeyPress и OnKeyDown/OnKeyUp для коррекции вводимых пользователем данных в поля ввода. Но можно не ограничивать возможности пользователя при вводе числовых значений. Для этого нужно использовать в коде программы блок try…except в том месте, где введенные пользователем данные конвертируются в целые (StrToInt) или вещественные (StrToFloat) числа. Обработчики событий OnKeyPress и OnKeyDown/OnKeyUp в этом случае не нужны. Ниже приведен фрагмент кода, в котором отслеживается и обрабатывается ИС, связанная с ошибкой преобразования.

try

r:= StrToFloat(Form1.Edit1.Text);//здесь может возникнуть ИС

except

on EConvertError do

begin

//Здесь блок обработки ИС

//Например, вывод сообщения об ошибке

ShowMessage('В поле введено не числовое значение!');

exit;//Выходим из подпрограммы

end;

end;





Дата публикования: 2014-11-03; Прочитано: 454 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...