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

Вниз

DBGrid цифровая клавиарура ввод десят.запятой   Найти похожие ветки 

 
MishaLukash   (2008-05-22 12:16) [0]

как сделать чтобы DBGrid был нечувствителен к языку ввода
(когда вводишь цифры с десятичной запятой с цифровой клавиатуры надо переключать язык чтобы там была точка )
а вот DBNumberEditEh нечувствителен к раскладке
в любом случае ставит точку

спасибо


 
Reindeer Moss Eater ©   (2008-05-22 12:23) [1]

очень полезная для грида фича.
особенно если вводят не числа, а слова и буквы разделенные запятыми.


 
MishaLuk   (2008-05-22 12:27) [2]

те я понял что так задуманно
а если юзеры плюются , что надо переключать все время язык
и вводят только цифры в эту сетку
что делать?
переключать язык при загрузке программы? (из-за настроек винды на разных компах разные требования на одном надо англ на другом рус)
спасибо


 
Vlad Oshin ©   (2008-05-22 12:31) [3]

procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
 if Key="," then Key=".";
end;


 
Vlad Oshin ©   (2008-05-22 12:31) [4]

Удалено модератором


 
Vlad Oshin ©   (2008-05-22 12:31) [5]

Удалено модератором


 
Reindeer Moss Eater ©   (2008-05-22 12:32) [6]

хочешь счастья юзерам - вводи данные на формах через dbedit"ы
в которых и обрабатывай точки с запятыми


 
Reindeer Moss Eater ©   (2008-05-22 12:33) [7]

procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if Key="," then Key=".";
end;

А если
"Превед, медвед!"


 
Vlad Oshin ©   (2008-05-22 12:35) [8]


> вводят только цифры в эту сетку


 
Reindeer Moss Eater ©   (2008-05-22 12:41) [9]

А сработает ли кейпресс грида в этом случае?
там же отдельный инплейс эдитор создается во время редактирования.


 
MishaLuk   (2008-05-22 12:57) [10]

ну вы даете!
неужели ни у кого не было такой проблемы?
большая сетка - название и потом к нему много цифр
и записей десятками (какой тут
> хочешь счастья юзерам - вводи данные на формах через dbedit"ы
> в которых и обрабатывай точки с запятыми

)
что
таки нужно в ручную переключать клаву?
спасибо


 
Reindeer Moss Eater ©   (2008-05-22 13:08) [11]

неужели ни у кого не было такой проблемы?
такие проблемы посещают только одаренных, а их здесь мало.


 
Сергей М. ©   (2008-05-22 13:15) [12]


> MishaLuk   (22.05.08 12:57) [10]


Поле дбгрида связано с объектом TField.
У этого объекта есть событие OnSetText, в обработчике которого ты вправе заменить нежелательные введенные юзером символы на желательные.


 
MishaLukash   (2008-05-22 17:00) [13]


> Сергей М. ©   (22.05.08 13:15) [12]

спасибо!


 
MishaLukash   (2008-05-22 17:12) [14]

просто сделал
procedure TForm1.DBGridTPress(Sender: TObject; var Key: Char);
begin
 if Key="," then Key:=".";

end;


 
Сергей М. ©   (2008-05-22 19:17) [15]


> MishaLukash   (22.05.08 17:12) [14]


Тупо ты сделал. Тупо.

Смотри [7]


 
MsGuns ©   (2008-05-22 22:35) [16]

Миша, для быстрого ввода чисел используется специальная примочка на клавиатуре, кейпад называется. Именно ею пользуются опытные операторы.

А искусственно подменять одни символы другими, даже из лучших побуждений - это см [15]


 
MsGuns ©   (2008-05-22 22:38) [17]

Млин, речь только о дес.точке - пардон, не въехал. Тогда нужно в OnKeyPress проверять содержимое поля и, если там число, то тогда "," менять на "." Хотя тоже могут быть грабли ;)))


 
Сергей М. ©   (2008-05-22 22:49) [18]


> Хотя тоже могут быть грабли


Антиграбельный комитет рекомендовал не заниматься дурью, редактируя прямо в гриде, а пользоваться специальнми антиграбельными инструментами типа TMaskEdit, TNumericEdit и иже с ними)


 
MsGuns ©   (2008-05-22 23:29) [19]

>TMaskEdit

Ох, и гадость эта ваша заливная рыба ;)


 
Сергей М. ©   (2008-05-23 12:22) [20]


> MsGuns ©   (22.05.08 23:29) [19]


Да, есть в этом блюде кой-какие невкусные ингредиенты)
Но зато у него есть исходники, по которым можно приготовить собственное вкусное блюдо)


 
ab   (2008-06-01 19:19) [21]

несколько лет назад здесь же на тот же вопрос мне подсказали:

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
 var Handled: Boolean);
begin
 with Msg do
   case Message of
     WM_KEYDOWN:
       if wParam=VK_DECIMAL then begin
         Handled := True;
         PostMessage(HWND, WM_CHAR, Ord("."), lParam);
       end;
     WM_KEYUP:
      if wParam=VK_DECIMAL then
        Handled := True;
   end;
end;



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2009.08.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.005 c
1-1212748708
Ольга
2008-06-06 14:38
2009.08.23
Компонента cxGrid (DevExpress)


15-1245789024
Юрий
2009-06-24 00:30
2009.08.23
С днем рождения ! 24 июня 2009 среда


2-1245739392
Polkin
2009-06-23 10:43
2009.08.23
Вставить готовый текст в RichEdit


15-1245913258
b/@.
2009-06-25 11:00
2009.08.23
К чему может привести частое использование overload функций?


15-1245435055
AlexDan
2009-06-19 22:10
2009.08.23
Инетрнет-магазин





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