Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.01.21;
Скачать: CL | DM;

Вниз

Прерывание...   Найти похожие ветки 

 
Грифон   (2001-12-17 23:58) [0]

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

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


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


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

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


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

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


 
Nest ©   (2001-12-18 09:25) [3]

BeforePost?


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

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


 
Polevi ©   (2001-12-18 15:26) [5]

try
Post
except
lalala
end;


 
Someone ©   (2001-12-18 15:36) [6]

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


 
panov ©   (2001-12-18 16:04) [7]

Например, так:
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;


 
Polevi ©   (2001-12-18 16:25) [8]

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


 
Someone ©   (2001-12-18 18:24) [9]

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


 
panov ©   (2001-12-18 20:56) [10]

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



Страницы: 1 вся ветка

Текущий архив: 2002.01.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.008 c
6-66314
LAMMER
2001-08-15 06:06
2002.01.21
Проблемма в работе с сокетами!!!


7-66363
DNT
2001-10-03 11:54
2002.01.21
Margin у обычного popup menu.


14-66349
Seeree
2001-11-23 14:33
2002.01.21
Промышленное и заказное программирование


1-66313
Strelok
2002-01-02 16:15
2002.01.21
Хорошие книги по Дельфи


6-66324
Vaddya
2001-09-06 00:27
2002.01.21
Поиск сервера для TClientSocket