Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.13;
Скачать: CL | DM;

Вниз

Перехват системного сообщение об ошибке   Найти похожие ветки 

 
VFP   (2003-01-28 11:44) [0]

Народ! Есть DBEdit и это поле предназначено для отображения данных из таблицы, а именно дату!!!!
Так вот событие OnExit не успевает срабатывать, если дату ввели неправильно. Так как при выходе есно дело DBEdit пытаеться это записать в базу (конечно он не записывает в базу, но на корректность данные он проверяет) и поэтому если дату ввели не правильно, то срабатывает внутренний обработчик ошибок.

Как перехватить это???


 
JibSkeart ©   (2003-01-28 12:03) [1]

try
except

или делай маску
или проверяй на сабытие onChange


 
VFP   (2003-01-28 12:11) [2]

try
except

на какое событие это повесить?

Маску сделать не получиться (долго объяснять).

Событие OnChange (если честно оно меня достало, любое изменение и оно срабатывает, даже если изменение происходило в форме).

За ответ большое спасибо, напиши как быть мне с этой проблемой.


 
D   (2003-01-28 12:19) [3]

OnEditError у DataSet ?


 
JibSkeart ©   (2003-01-28 12:25) [4]

try
Qyery.SQL.Clear;
Qyery.SQL.ADD("insert into table(date) value("+Edit1.Text+")")
Qyery.Close;
Qyery.Open;
except
on EError do
showMessage("Вы типа неправильно ввели дату ")
end

EError надо смотреть какая там ошибка
вообшем посмотри в хелпе
я не заню точно как в Дельфях
знаю как Buildere C++
но что то в таком духе



 
VFP   (2003-01-28 12:27) [5]

Поле DBEdit у меня привязано к DataSource.
DataSource привязано к ADOQuery.
ADOQuery привязано к ADOConnect.
У ADOQuery есть свойство OnEditError, но оно не срабатывает при ошибке в DBEdit (дата).

Как быть?


 
Соловьев ©   (2003-01-28 12:32) [6]

используй не DBEdit , а готовый компонент Calendar убьешь 2 зайца:
1. Вид, красивее.
2. Пользователь не сможет ввести неправильную(синтаксически) дату.


 
VFP   (2003-01-28 12:41) [7]

Как я буду отображать в компоненте Calendar данные из таблицы, вводить может и проще, а вот выводить!!!

В DBEdit я прописал DataSource и все (вот тебе и отображение и возможность изменений).


 
D   (2003-01-28 12:42) [8]

Можно в событии OnSetText для конкретного поля (если статический список полей)

procedure TForm1.ADOQuery1Sec_NameSetText(Sender: TField;
const Text: String);
begin
try
Sender.Value:=Text
except
Sender.Value:=null;
showmessage("Неправильно введена дата!");

end;
end;


 
D   (2003-01-28 12:45) [9]

Вроде есть компонент DBDateTimeEdit или что-то вроде этого


 
Соловьев ©   (2003-01-28 12:46) [10]

VFP (28.01.03 12:41)
Выводить еще проще...Повесь на какое-нибудь событие...


 
Соловьев ©   (2003-01-28 12:50) [11]

В инете много компонент: www.torry.net, я пользуюсь www.lmdtools.com(прикольные и много)
А на счет DateTimePicker ты подумай, лучше просто не дать пользователю ввести чего-то, чем забросать его месагами что ошибка...


 
VFP   (2003-01-28 12:52) [12]

D (28.01.03 12:45)

Где такая компонента DBDateTimeEdit. В стандартных её нет.
Если помнишь где её видел, то напиши.


 
VFP   (2003-01-28 12:55) [13]

D (28.01.03 12:45)

Для DBEdit OnSetText нет.


 
Соловьев ©   (2003-01-28 12:56) [14]

www.lmdtools.com там есть DBTimeEdit


 
D   (2003-01-28 12:59) [15]

В Query - двойной клик - вызывается редактор полей. Правой кнопкой - добавить все поля. Выбрать нужн.поле (с датой), для него в инспекторе объектов событие OnSetText

Стандартный компонент поищи на странице DataControls


 
VFP   (2003-01-28 13:09) [16]

Соловьев © (28.01.03 12:46).

Спасибо за совет использовать DateTimePicker, всё просто здорово и не очень сложно, а то для DBEdit я писал целую функцию для проверки ввода даты.

Всем спасибо за вашу помощь!!!!!!!!!!!!



Страницы: 1 вся ветка

Текущий архив: 2003.02.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.017 c
1-38247
soware
2003-02-05 14:13
2003.02.13
Панель программ на


3-38147
VinRaider
2003-01-27 01:35
2003.02.13
Указание пути к базе данных


1-38227
hogo
2003-02-03 07:39
2003.02.13
TStringGrid


14-38458
KME
2003-01-27 13:41
2003.02.13
Сталинградская Битва


14-38477
panov
2003-01-10 19:01
2003.02.13
Что-то совсем скучно.....................