Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.019 c
2-1183948560
Riply
2007-07-09 06:36
2007.08.12
MFT и ChkDsk.


15-1184214406
Riply
2007-07-12 08:26
2007.08.12
Владпута, Едрос.


4-1172297096
Чапаев
2007-02-24 09:04
2007.08.12
Защита


4-1172262992
Альберт
2007-02-23 23:36
2007.08.12
и опять окна с переменной прозрачностью..


15-1184678519
Nous Mellon_
2007-07-17 17:21
2007.08.12
Как настроить .htaccess?




   Наверх