Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.011 c
1-38292
lety
2003-02-05 18:34
2003.02.13
SelectDirectory


7-38580
Youri
2002-12-09 10:46
2003.02.13
Как работать с уровнями сигнала в телефоне?!


3-38021
Pashok
2003-01-28 10:47
2003.02.13
Где ошибка в ХП


7-38613
_igor
2002-12-09 12:34
2003.02.13
Поиск файла по фрагменту имени


9-38006
VitGun
2002-09-02 20:03
2003.02.13
Изометрический движок





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