Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.23;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.008 c
15-1245756951
tesseract
2009-06-23 15:35
2009.08.23
FireBird прошёл в финалисты Community choice


3-1226469214
matveih1
2008-11-12 08:53
2009.08.23
Загрузке картинки в DBImage из БД


6-1200297698
JanMihail
2008-01-14 11:01
2009.08.23
Как подождать загрузки WebBrowser a


1-1212480249
andreil
2008-06-03 12:04
2009.08.23
Ассоциация расширений с многостраничной иконкой...


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