Форум: "Основная";
Текущий архив: 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