Главная страница
    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
1-66257
ЗАА
2002-01-03 17:24
2002.01.21
курсор в StringGrid


1-66276
BigLamer
2002-01-04 12:57
2002.01.21
Почему Delphi делит не верно?


4-66390
Asisyay
2001-11-19 18:24
2002.01.21
приоритет


1-66252
Gol2000
2002-01-02 08:43
2002.01.21
Как в TRichEdit у отдельных строк поменять цвет фона (цвет бумаги) ?


4-66403
Floyn
2001-11-21 18:01
2002.01.21
Как заставить Excel поймать посланное ему сообщение?





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