Главная страница
    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.57 MB
Время: 0.023 c
3-66190
dimsfdf
2001-12-17 14:44
2002.01.21
А какой сейчас самый свежий ORACLE?


1-66243
Mis
2002-01-02 13:41
2002.01.21
Как сделать паузу.


3-66214
Cobalt_
2001-12-18 10:58
2002.01.21
Не могу сделать выборку по строкрвым полям!


3-66197
veles
2001-12-17 06:47
2002.01.21
Люди добрые, я сам не здешьний, помогите кто-нибудь :)))


14-66362
J_S
2001-11-22 21:45
2002.01.21
http://delphi.mastak.com/prikol/prayer.htm





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский