ВУЗ:
Составители:
Рубрика:
24
Существует и другой подход, ориентированный на записи. Он состоит в том, что в
структуре таблицы при ее определении описываются ограничения на значения, которые может
принимать данное поле. В этом случае контроль правильности ведется автоматически.
Пример обработчика события OnValidate. Запретим полю Table2Company содержать
символ «#». Обратите внимание на то, как формируется имя обработчика события для компонента
TField, к имени компонента добавляется имя события без начального «On».
procedure TForml.Table2CompanyValidate(Sender: TField);
begin
IF POS('#',Table2Company.AsString) > 0 THEN
begin
ShowMessage('Обнаружен символ #!');
Abort;
end;
end;
Или
procedure TForml. Table2CompanyValidate (Sender: TField);
begin
IF POS ('#',Table2Company.AsString) > 0 THEN
raise Exception.Create( 'Неверное значение');
end;
Если символ «#» содержится в значении, присвоенном полю, метод Abort или
принудительно возбужденная исключительная ситуация не позволят выполниться методу
Post и запись с неверным полем не будет физически записана в базу данных. Набор
данных не изменится.
Для проверки введенного значения может быть использовано и другое событие,
OnSetText. Подобно событию OnValidate, оно возникает при изменении значения поля.
Однако на момент события новое значение полю не присвоено и, если этого не сделать
программно в обработчике события, сделано никогда не будет.
Пусть в поле Table2PRICE типа TFloatField было изменено значение с 10 на 360. Если
новое значение не должно превышать 150. Тогда обработчик события будет выглядеть так:
procedure TForml.Table2PRICESetText(Sender: TField; const Text: String);
var Tmp : Real;
begin
Tmp :.= StrToFloat(Text) ;
IF Tmp > 150 THEN
ShowMessage('Ошибочное значение')
ELSE
Table2PRiCE.Value := Tmp;
end;
Для этого примера обработчик события OnValidate будет выглядеть так:
procedure TForml.Table2PRICEValidate(Sender: TField);
begin
IF Table2PRICE.Value > 150 THEN
begin ShowMessage('Ошибочное значение'); Abort;
end;
end;
Существует и другой подход, ориентированный на записи. Он состоит в том, что в структуре таблицы при ее определении описываются ограничения на значения, которые может принимать данное поле. В этом случае контроль правильности ведется автоматически. Пример обработчика события OnValidate. Запретим полю Table2Company содержать символ «#». Обратите внимание на то, как формируется имя обработчика события для компонента TField, к имени компонента добавляется имя события без начального «On». procedure TForml.Table2CompanyValidate(Sender: TField); begin IF POS('#',Table2Company.AsString) > 0 THEN begin ShowMessage('Обнаружен символ #!'); Abort; end; end; Или procedure TForml. Table2CompanyValidate (Sender: TField); begin IF POS ('#',Table2Company.AsString) > 0 THEN raise Exception.Create( 'Неверное значение'); end; Если символ «#» содержится в значении, присвоенном полю, метод Abort или принудительно возбужденная исключительная ситуация не позволят выполниться методу Post и запись с неверным полем не будет физически записана в базу данных. Набор данных не изменится. Для проверки введенного значения может быть использовано и другое событие, OnSetText. Подобно событию OnValidate, оно возникает при изменении значения поля. Однако на момент события новое значение полю не присвоено и, если этого не сделать программно в обработчике события, сделано никогда не будет. Пусть в поле Table2PRICE типа TFloatField было изменено значение с 10 на 360. Если новое значение не должно превышать 150. Тогда обработчик события будет выглядеть так: procedure TForml.Table2PRICESetText(Sender: TField; const Text: String); var Tmp : Real; begin Tmp :.= StrToFloat(Text) ; IF Tmp > 150 THEN ShowMessage('Ошибочное значение') ELSE Table2PRiCE.Value := Tmp; end; Для этого примера обработчик события OnValidate будет выглядеть так: procedure TForml.Table2PRICEValidate(Sender: TField); begin IF Table2PRICE.Value > 150 THEN begin ShowMessage('Ошибочное значение'); Abort; end; end; 24
Страницы
- « первая
- ‹ предыдущая
- …
- 22
- 23
- 24
- 25
- 26
- …
- следующая ›
- последняя »