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

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

Проблема с EDBEditError :(((


KidMan ©   (2002-10-01 23:47:00) 

Здравствуйте!
Подскажите пожалуйста как перехватить сообщение
ошибки при работе с MaskEdit - DBEditError ?
Ощибка DBConvertError мной прехватывается нормально...
(в TRY-EXCEPT) она происходит когда пытаешься записать
пустое значение MaskEdit... А вот когда стоит просто
написать одну цифру или неверную дату то наступает
это сообщение DBEditError... которая никак не хочет
ловиться и соответственно появляется противное сообщение
дельфей... ((

Заранее всех благодарю...


KidMan   (2002-10-06 23:07:00) [1]

Честно говоря... не нравится мне этот компонент... Ясно становится что за тебя уже кто то поработал... А вот вытаскивать что то новоеиз созданного другим... это уже интереснее... Как в случае маскедит например... ))

Спасибо за совет... завтра попробую... и доложу (улыбается)


TTCustomDelphiMaster   (2002-10-06 16:43:00) [2]

Действительно не заработает. Извеняюсь, я невнимательно прочитал Ваше сообщение от (01.10.02 23:47). Вам нужно написать потомка TMaskEdit и затереть функцию проверки введенного текста.

type
TMyMaskEdit = class(TMaskEdit)
procedure ValidateEdit; override;
end;

procedure TMyMaskEdit.ValidateEdit;
begin
end;

PS: А почему бы Вам не использовать TDateTimePicker?


KidMan   (2002-10-05 12:38:00) [3]

От слов к практике вы говорите? Я попробовал... но не заработало однако... ((
У вас есть еще идеи? Я бы с удовольствие выслушал Вас...

Заранее благодарю...


TTCustomDelphiMaster   (2002-10-05 00:35:00) [4]

Вы будете рассуждать или проверите на практике, Уважаемый!!!


KidMan   (2002-10-05 00:25:00) [5]

Сорри но эта функция никак не влияет (смеется когда вспоминает о том что сказал что не знаю о такой функции) Конечо же знал... просто ламернулся по вниманию... и никак не может влиять на исключительную ситуацию возбуждаемую Exception (откровенно смеется) Это просто функция приведения типов...
Вы что то там попутали Уважаемый! ;)) Или может быть вы не знаете что такое понятие исключительной ситуации?? ;))


KidMan   (2002-10-05 00:14:00) [6]

Спасибо за совет...!
об этой функции я не знал... Попробую однако....


TTCustomDelphiMaster   (2002-10-04 23:31:00) [7]

А что, трудно проверить значение перед записью?

try
strtodate(MaskEdit1.Text);
Table1.Insert;
Table1.FieldByName("DATAISPOL").Value := MaskEdit1.Text;
Table1.Post;
except
end;

И все. Любые недопустимые значения не будут записываться в базу.


KidMan   (2002-10-04 22:59:00) [8]

Уважаемый Гек... мне не ужно перехватывать все ошибки одним except ... в таком случае я мог бы использовать свойство Application.OnException и класс TGlobalExHandler в файле проекта...
Меня это не устраивает потому как в моей программе может быть масса других исключительных ситуаций... Способ представленный вами будет "глушить" все остальные ситуации возникающие в программе... Я уже не говорю об искусственном способе вызова исключительной ситуации rise

Можете что нибудь еще посоветовать?

Заранее благодарю!


gek   (2002-10-04 11:26:00) [9]

Ну так сделай все ошибки перехватит
try
.............
except
on E:Exception do
begin
................
end;


KidMan   (2002-10-04 11:18:00) [10]

Плизззз....


KidMan   (2002-10-03 23:59:00) [11]

Ну хоть кто нибудь! Горю!


KidMan   (2002-10-03 22:16:00) [12]

procedure TForm1.Button1Click(Sender: TObject);
begin
TRY
Table1.Insert;
Table1.FieldByName("DATAISPOL").Value := MaskEdit1.Text;
Table1.Post;
EXCEPT
On E: EDBEditError do
ShowMessage("EDBEditError");
On E: EDatabaseError do
ShowMessage("EDatabaseError");
END;
end;


Вот такой вот небольшой код TRY-EXCEPT перехватывает событие EDatabaseError когда пытаешься записать в базу пустое значение MaskEdit1 или когда введена неправильная
дата типа 33.44.02
А вот когда в поле значение типа 01. . то выходит сообщение

"Project (имя проекта) rised exception class EDBEditError with
message "Invalid input value. " и так далее

Заранее благодарю!


Mike Kouzmine   (2002-10-02 18:39:00) [13]

А исключение возбуждается в этой же секции?


KidMan   (2002-10-02 17:57:00) [14]

Ребят... неужели так и не можете подсказать???


Наверх

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