Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Для защиты полей ввода 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!