Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Прерывание... [D5, Paradox, ]


Грифон ©   (2001-12-17 23:58:00) 

БД заполняется через компоненты DBEdit и подобные. Так вот если не все поля заполнены, то прога автоматически генерирует прерывание о не заполненном поле при выполнении

if Table1.State in [dsInsert,dsEdit] then
Table1.Post;


Все логично, но мне хотелось бы, чтоб при этом выводилось мое сообщение. В каком месте мне надо ловить это прерывание и писать свою строчку. А еще, если просто переходишь к другой записи в Table1 скажем мышкой, то прерывание также генерируется.
Если можно, с примером.


panov   (2001-12-18 20:56:00) [1]

Пример от <panov © (18.12.01 16:04)> будет срабатывать на каждое поле(после небольшой модификации).
Системных сообщений об ошибке


Someone   (2001-12-18 18:24:00) [2]

имхо, решение одно. Отказаться от Required, а в BeforePost самому проверять, все ли поля введены, и если нет, то своё сообщение и Abort.


Polevi   (2001-12-18 16:25:00) [3]

Someone ©
Верно, не подумал


panov   (2001-12-18 16:04:00) [4]

Например, так:
TForm1 = class(TForm)
...
procedure FieldSetText(Sender: TField; const Text: String);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Table1.Fields[0].OnSetText := FieldSetText;
end;

procedure TForm1.FieldSetText(Sender: TField; const Text: String);
begin
...
if <проверка формата> then
begin
Table1.Fields[0].Value := Text;
end
else
begin
ShowMessage(Text);
end;
end;


Someone   (2001-12-18 15:36:00) [5]

2 Polevi
Из вопроса:
> А еще, если просто переходишь к другой записи в Table1 скажем мышкой, то > прерывание также генерируется


Polevi   (2001-12-18 15:26:00) [6]

try
Post
except
lalala
end;


2 Nest   (2001-12-18 14:51:00) [7]

То же самое. BeforePost вызывается тоже после CheckRequiredFields.


Nest   (2001-12-18 09:25:00) [8]

BeforePost?


2 Ю.Ю.   (2001-12-18 04:15:00) [9]

А ты сам пробовал свой совет? OnPostError вызывается ПОСЛЕ CheckRequiredFields, в котором и вылетает прога Грифона.


Ю.Ю.(первый и единственный)   (2001-12-18 03:16:00) [10]

Напр., в обработчике Table1.onPostError


Наверх

Титульная страница Поиск, карта сайта Написать письмо