Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.01.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
Грифон   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.003 c
7-66371
DNT
2001-10-04 09:50
2002.01.21
Диалог выбора иконки.


6-66331
Роллер
2001-10-25 10:51
2002.01.21
Windows SocketError: что за ошибки?


4-66389
Диман
2001-11-19 10:06
2002.01.21
Как получить размер файла? Ессно, винапишной функцией GetFileSize


6-66315
Bak
2001-10-25 09:07
2002.01.21
Winsock


6-66328
evgen32
2001-10-29 08:56
2002.01.21
дата и время





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский