Форум: "Базы";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
ВнизTFibDataSet обмирает OnSetText Найти похожие ветки
← →
DelphiLexx © (2006-07-27 17:32) [0]В FibDataSet"е на определенное поля наложен обработчик события OnSetText в котором ведется проверка вводимых данных.
if Text = (определенный критерий) then
Sender.AsFloat := Text;
FibDataSet.Post;
else
MessageBox(Self.Handle, "Не правильно введены данные", "Ошибка", MB_ICONERROR or MB_OK)
Проблема в том, что после того как пользователь ввел данные и нажамал Enter поле все равно остается в режиме редактирования.
Как с этим бороться?
← →
Виталий Панасенко (2006-07-27 18:02) [1]А OnValidate тогда зачем придумали ?
← →
PEAKTOP © (2006-07-27 19:14) [2]
> .........
> Sender.AsFloat := Text;
> .........
И че, компилятор ничего не говорит ?
← →
DelphiLexx © (2006-07-28 08:47) [3]
> А OnValidate тогда зачем придумали ?
В него не передается Text.
← →
DelphiLexx © (2006-07-28 08:48) [4]
> И че, компилятор ничего не говорит ?
Sender.AsString := Text;
← →
Johnmen © (2006-07-28 09:07) [5]проверка вводимых данных обычно делается в других местах
напр. в BeforePost
← →
Виталий Панасенко (2006-07-28 09:22) [6]
> DelphiLexx © (28.07.06 08:47) [3]
>
> > А OnValidate тогда зачем придумали ?
>
> В него не передается Text.
Ты это сУрьезно ? Но зато туда передается Sender : TField, который можно привести к любому необходимому типу поля
if (Sender as TStringField).Value<>"конкрентное условие" then
raise Exception.Create("Пургу гоним, товарищЬ!")
← →
ЮЮ © (2006-07-28 09:25) [7]Sender.AsString := Text;
А точно параметр в обработчике так называется?
А то у TField свойсто Text, и если в коде именно оно, то возможна бесконечная рекурсия.
Отладчик для чего дан?
← →
DelphiLexx © (2006-07-28 09:29) [8]
> if (Sender as TStringField).Value<>"конкрентное условие"
> then
> raise Exception.Create("Пургу гоним, товарищЬ!")
Так как тут подтвердить или отменить внесенные данные.
Мне нужно вот так:
if (Sender as TStringField).Value = "конкрентное условие"
then
//потвержаем внесенные изменения
else
//изменения не вносятся
← →
ЮЮ © (2006-07-28 09:34) [9]
> //потвержаем внесенные изменения
> FibDataSet.Post;
На кой нужно после изменения каждого поля записывать изменения в базу?
Достаточно вызвать Exception, если данные некорректны
← →
Johnmen © (2006-07-28 10:01) [10]
> ЮЮ © (28.07.06 09:34) [9]
> > FibDataSet.Post;
> На кой нужно после изменения каждого поля записывать изменения
> в базу?
Строго говоря, после поста изменения в базу не пишутся. Если не предпринять дополнительных телодвижений...
← →
ЮЮ © (2006-07-28 11:35) [11]
> Если не предпринять дополнительных телодвижений...
Если до этого не предпринять дополнительных телодвижений по кэшированию изменений в DataSet-е. Хотя с FibDataSet-ом, признаюсь, на знаком
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.02 c