Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1184682775
Knob
2007-07-17 18:32
2007.08.12
Две проги


15-1184552746
Slider007
2007-07-16 06:25
2007.08.12
С днем рождения ! 16 июля 2007 понедельник


3-1177453476
TTable
2007-04-25 02:24
2007.08.12
Как получить указатель на строку в Table1.Fields[2].AsString ?


6-1167919439
pest_tt
2007-01-04 17:03
2007.08.12
Отправка и прием файлов через NMSTRM


2-1183948560
Riply
2007-07-09 06:36
2007.08.12
MFT и ChkDsk.





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