Форум: "Начинающим";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
ВнизQvantumGrid поймать символ Найти похожие ветки
← →
Девушка © (2007-07-12 10:33) [0]Доброго времени суток!
Может и глупый вопрос, но всеже:
Пользователи часто вводят цифры с плавающей точкой в сетку таблицы.
Разделителем дробной части является запятая.
Но пользователи не смотрят на раскладку клавиатуры (я впрочем тоже), часто нажимают ".", "б" и прочие неразумные символы.
Удачным решением было бы - перехватывать ввод неразумного символа в ячейку грида и подменять его на запятую.
Вот только мне не удалось обнаружить как это сделать :((
← →
TUser © (2007-07-12 10:52) [1]OnKeyPress/Down/Up там есть?
← →
ASoft (2007-07-12 11:46) [2]
> Разделителем дробной части является запятая.
вобще-то, DecimalSeparator :-)
← →
Плохиш © (2007-07-12 11:55) [3]
> ASoft (12.07.07 11:46) [2]
>
> > Разделителем дробной части является запятая.
>
> вобще-то, DecimalSeparator
Всё от использованных функций зависит ;-)
← →
Stanislav © (2007-07-12 12:02) [4]перед сохранением можно заменить точку и б на запятую
← →
Rip_1982 © (2007-07-12 12:14) [5]Попробуй обрабатывать значение Value в событии OnSetEditText
← →
Zagaevskiy © (2007-07-12 14:37) [6]
> TUser © (12.07.07 10:52) [1]
> OnKeyPress/Down/Up там есть?
Лучше всего это, я пользовался, когда нужно было дробные вводить.
> Но пользователи не смотрят на раскладку клавиатуры (я впрочем
> тоже),
Не смотришь на раскладку, смотри на экран :)
123б456 или там 90ю23 нормально, да?
← →
clickmaker © (2007-07-12 14:52) [7]а может там что-то типа InputMask есть?
← →
turbouser © (2007-07-12 14:57) [8]
>
> Девушка © (12.07.07 10:33)
Можно же сделать у столбца Properties=CurrencyEdit
← →
Rip_1982 © (2007-07-12 14:59) [9]
> а может там что-то типа InputMask есть?
Нет там InputMask! Я считаю что лучше обрабатывать OnSetEditText, так как там можно проверять все уже введенное значение!
← →
Rip_1982 © (2007-07-12 15:02) [10]А ведь юзер может и не один ввести не тот символ. И сколько тогда запятых в одном числе будет? Лучше контролировать все значение!
← →
turbouser © (2007-07-12 15:06) [11]..и, кстати, у поля в датасете должно быть свойство EditFormat.
← →
Rip_1982 © (2007-07-12 15:12) [12]
> turbouser © (12.07.07 15:06) [11]
> ..и, кстати, у поля в датасете должно быть свойство EditFormat.
>
Я думаю, что если бы это был DBGrid то вопросов не возникло бы!
← →
Девушка © (2007-07-12 15:39) [13]
> Не смотришь на раскладку, смотри на экран :)
> 123б456 или там 90ю23 нормально, да?
> Rip_1982 © (12.07.07 15:02) [10]
> А ведь юзер может и не один ввести не тот символ. И сколько
> тогда запятых в одном числе будет? Лучше контролировать
> все значение!
с этим то какраз все впорядке - умный квантум грид не дает ввести чтото не подходящее под определение числа с плавающей точкой.
поэтому когда пользователи набирают "похожие" символы - они просто не вводятся в ячейку.
← →
turbouser © (2007-07-12 15:40) [14]
> Rip_1982 © (12.07.07 15:12) [12]
> Я думаю, что если бы это был DBGrid то вопросов не возникло
> бы!
Я про дбгрид даже и не намекал :)
И вообще - тип поля судя по всему string?
← →
turbouser © (2007-07-12 15:42) [15]
> Девушка © (12.07.07 15:39) [13]
А. Понятно :)
Тогда надо у View обрабатывать OnKeyPress
← →
Девушка © (2007-07-12 15:44) [16]
> turbouser © (12.07.07 15:42) [15]
>
> > Девушка © (12.07.07 15:39) [13]
>
> А. Понятно :)
> Тогда надо у View обрабатывать OnKeyPress
мда... а как мне понять в какую ячейку вводится "похожий" символ?
у меня там есть и string, и real, и integer...
← →
Rip_1982 © (2007-07-12 15:45) [17]
> с этим то какраз все впорядке - умный квантум грид не дает
> ввести чтото не подходящее под определение числа с плавающей
> точкой.
> поэтому когда пользователи набирают "похожие" символы -
> они просто не вводятся в ячейку
Тогда перехватывай вводимый символ и если надо - меняй.
← →
turbouser © (2007-07-12 16:23) [18]
> Девушка © (12.07.07 15:44) [16]
>
>
> > turbouser © (12.07.07 15:42) [15]
> >
> > > Девушка © (12.07.07 15:39) [13]
> >
> > А. Понятно :)
> > Тогда надо у View обрабатывать OnKeyPress
>
>
> мда... а как мне понять в какую ячейку вводится "похожий"
> символ?
Вот так, например:procedure TMainForm.MainTableKeyPress(Sender: TObject; var Key: char);
begin
if (MainTable.Controller.FocusedColumnIndex > -1) and
(TcxGridDBColumn(MainTable.Controller.FocusedColumn).DataBinding.FieldName =
"ИМЯ_ПОЛЯ") and not (key in ["0".."9", DecimalSeparator]) then
key := #0;
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.077 c