Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
ВнизTEdit: разрешить ввод только чисел. Найти похожие ветки
← →
V l a d i m i r (2004-07-24 17:57) [0]Уважаемые мастера, каким образом можно "заставить" пользователя вводить в поле Edit окна редактирования только числа?
← →
Zlod3y © (2004-07-24 18:11) [1]используй MaskEdit
а вообще полистай форум, пару дней назад было
← →
Андрей Сенченко © (2004-07-24 18:14) [2]Не факт, что самый изящный вариант, но я делал так
procedure TFmMain.EditKeyPress(Sender: TObject; var Key: Char);
begin
if strtointdef(key,-1) < 0 then // ввели не цифру
end;
← →
Zlod3y © (2004-07-24 18:38) [3]а я так:
вариант для целых и неотрицательных чиселprocedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
"0".."9":;
#8:;
else Key:=#0;
end;
end;
← →
GanibalLector © (2004-07-24 18:41) [4]А я так :
var old1:string;
...
procedure TForm1.Edit1Change(Sender: TObject);
begin
if edit1.text<>"" then
try
strtoint(edit1.text);
old1:=edit1.text;
except
edit1.text:=old1;
edit1.SelStart:=length(edit1.text);
edit1.seltext:="";
end;end;
← →
Gero © (2004-07-24 18:47) [5]SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);
← →
Бином Ньютоныч (2004-07-24 18:47) [6]>Андрей Сенченко © (24.07.04 18:14) [2]
ЧИСЛА могут включать знаки +, -, (./,), "экспоненциальную форму.
Ку?
← →
Андрей Сенченко © (2004-07-27 20:48) [7]Бином Ньютоныч (24.07.04 18:47) [6]
1. Не претендовал на правильность ответа
2. Несколько фривольно поступил с интерпретацией вопроса, но что-то мне смутно подсказывает, что именно цифры и имелись в виду.
3. Мой ответ по-любому не дописан, в нем нет никакого действия при возникновении собственно ситуации ввода НЕцифры. Зато метод есть и точка проверки есть. Имеющий глаза - увидит. И напишет то, что считает нужным для себя если именно предложенный мной метод покажется ему подходящим.
Ку безусловно. Как не ку то ?
← →
Petr V.Abramov (2004-07-27 21:39) [8]А проще взять TMaskEdit и не мучаться
← →
AndrewVolkov © (2004-07-27 23:10) [9]procedure TForm.OnKeyPress(Sender: TObject; var Key: Char);
begin
if (key in [ #48..#57]) or (key in [ #37..#40]) or (key=#8)
then
else key:=#0
end;
← →
AndrewVolkov © (2004-07-27 23:13) [10]точнее
if (key in [ #8,#37..#40,#48..#57])
then
else key:=#0
А маск едит помойму геморройнее использовать
← →
Кириешки © (2004-07-27 23:46) [11]>AndrewVolkov © (27.07.04 23:13) [10]
"А маск едит помойму геморройнее использовать"
А в чем заключаются трудности по использованию MaskEdit?
Там как раз не надо никакого кода писать для того чтобы вводить только цифры - там есть специальное свойство - EditMask. Вводишь туды нулики, и на тебе - только цифры и принимает. Мне кажется наоборот он лучше, тем более что пользователю "по барабану" Edit это или MaskEdit, главное что только цифры влезают.
← →
Piter © (2004-07-28 00:58) [12]Все способы, основанные на проверке вводимого символа, неверны. Вы забываете о Paste при котором естественно не срабатывает OnKey. Надо обрабатывать Change, где проверять все символы в Edit"е.
← →
AndrewVolkov © (2004-07-28 01:08) [13]то Кириешки
а если ты захочешь использовать еще какие-нибудь символы, не только цифры?
← →
Кириешки © (2004-07-28 01:12) [14]>AndrewVolkov © (28.07.04 01:08) [13]
В MaskEdit?
← →
GanibalLector © (2004-07-28 01:40) [15]2 Piter
>Все способы, основанные на проверке вводимого символа, неверны. Вы забываете о Paste при котором естественно не срабатывает OnKey
Дык...можно поставить пустой popup и намана.Правая кнопка не позволит сделать твое Paste
← →
nikkie © (2004-07-28 02:12) [16]>Gero
а копирайт где? :)
← →
Piter © (2004-07-28 02:28) [17]GanibalLector © (28.07.04 1:40) [15]
Дык...можно поставить пустой popup и намана.Правая кнопка не позволит сделать твое Paste
да? Может еще хук поставишь на Ctrl+V и Ctrl+INS ?
Тебе не кажется что проще все таки правильно сделать? :)
nikkie © (28.07.04 2:12) [16]
а копирайт где? :)
что, из DMClient"а? :)
← →
nikkie © (2004-07-28 02:43) [18]>что, из DMClient"а? :)
а то ж... хотя сейчас раскритикуют: точку-запятую нельзя вводить, не говоря уж про экспоненту. :)
← →
GanibalLector © (2004-07-28 02:49) [19]Piter © (28.07.04 02:28) [17]
да? Может еще хук поставишь на Ctrl+V и Ctrl+INS ?
Тебе не кажется что проще все таки правильно сделать? :)
Скажу честно...как-то не задумывался о этом и делал по своему.С сегоднешнего дня буду делать по твоему.Так-то оно и правильней будет.
← →
Gero © (2004-07-28 09:42) [20]
nikkie © (28.07.04 02:12)
> а копирайт где? :)
Sorry. Конечно же,
[5] - Copyright (c) by DMClient team.
Так лучше? ;)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.035 c