[Delphi] - przechwycenie wyjątku dla DBedit

0

Witam ma pewien problem z przechwyceniem wyjątku i podstawieniem własnego
komunikatu dla DbEdit. Sprawa wygląda następująco :

Mam Datamodule na nim Query do Query -> Datasource do Datasource podpięty
DBedit pod odpowiednie pole bazy, DBedit znajduje się na formatce pole jest
typu numeric(9) gdy user wprowadzi np liczbę np : 123eee (którą to dbedit
dopuszcza bo typ numeric widzi jako float) po opuszczeniu DBEdit-ta przez
usera wywala mu wyjątek "EDatabaseError ...ble ble ble" i całkiem pozytywnie.

Ja zaś chcialbym przechwycić ten wyjątek i podstawić własny komunikat (sprawa
czysto estetyczna) ale nie mogę się doszukać miejca w którym mogę umieścić
blok 'try .. except..end;'

Proszę o jakąś podpowiedź w tej sprawie.

Z góry dziękuje.

0

DBEdit ma zdarzenie OnExit, może to pomoże :)

0

Dziękuję za wypowiedzi ja rozwiązałem to w taki sposób :

Deklarujemy procedurę w DataModule :

procedure komunikat(Sender: TField;const Text: string);
var
 PoprzedniaWartosc:variant;
begin
 try
  PoprzedniaWartosc:=sender.Value;
  sender.Value:=text;
 except
   sender.Value:=PoprzedniaWartosc;
   showmessage('Nieprawidłowa wartość dla pola '+Sender.DisplayLabel);
 end;

Potem podkładamy ją pod zdarzenie :

DBEDIT.Field.OnSetText:=komunikat;

w zdażeniu OnMouseLeave komponentu DBedit

Pozdrawiam

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.