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

Вниз

Как запретить пользователю вводить определённый символ (   Найти похожие ветки 

 
Zvr@b ©   (2004-02-16 21:35) [0]

Помогите мастера!
Как запретить пользователю вводить определённый символ (например
точку). Чем пользоваться?


 
TUser ©   (2004-02-16 21:38) [1]

showMessage("Я запрещаю тебе вводить определенный символ!");


 
Sergey_Masloff   (2004-02-16 21:50) [2]

TUser © (16.02.04 21:38) [1]
>showMessage("Я запрещаю тебе вводить определенный символ! "+ #10#13 + " штраф 50 рублей " + #10#13 + " Администрация"
>);

Zvr@b ©
Смотря куда вводить. В любом случае полно событий где это можно обработать.


 
Zvr@b ©   (2004-02-16 22:05) [3]

Да блин проблема! Мне нужно сделать расчёт. Ввожу данные в Edit, перевожу их в число, но если USER введёт в дробное число с символом ".", то прога вылетает. Я же хочу чтоб он вообще несмог сделать такой ошибки!


 
Юрий Зотов ©   (2004-02-16 22:15) [4]

> Zvr@b © (16.02.04 22:05) [3]

Обрабатывайте событие OnKeyPress для этого Edit"а:
if not (Key in [ #8, "0".."9"]) then Key := #0;

Если допускаются отрицательные числа - добавьте к множеству символ "-"


 
Дубинин Алексей ©   (2004-02-16 22:16) [5]

Здраствуйте. Делай таким образом. На событие OnChange просматривай что ввел пользователь. Ну например:

if copy(Edit.Text,Length(Edit.Text),1) = "." then
begin
Edit.Text := copy(Edit.Text,1,Length(Edit.Text)-1);
Edit.SelStart:=Length(Edit.Text)-1;//SelStart переместить каретку на указаннуюую позицию
end;


Надеюсь поможет.
С уважением, Дубинин Алексей


 
Юрий Зотов ©   (2004-02-16 22:19) [6]

> Дубинин Алексей © (16.02.04 22:16) [5]
??????


 
volkodav ©   (2004-02-16 22:26) [7]

Используй маску ввода


 
Дубинин Алексей ©   (2004-02-16 22:29) [8]

Извиняюсь. Была маленькая оплошность в коде...
А что Юрию Зотову не понравилось? К чему так много ???????

if copy(Edit.Text,Length(Edit.Text),1) = "." then
begin
Edit.Text := copy(Edit.Text,1,Length(Edit.Text)-1);
Edit.SelStart:=Length(Edit.Text);//SelStart переместить каретку на указаннуюую позицию
end;


 
Sergey_Masloff   (2004-02-16 22:31) [9]

Юрий Зотов © (16.02.04 22:19) [6]
>> Дубинин Алексей © (16.02.04 22:16) [5]
>??????
Ну наверное имеется в виду случай когда догадливый пользователь видя что с клавиатуры нужную точку не ввести попытается из клипборда копирнуть.
В любом случае смысл
>Edit.Text := copy(Edit.Text,1,Length(Edit.Text)-1);
моему пониманию не поддался


 
Юрий Зотов ©   (2004-02-16 22:33) [10]

Дубинин Алексей © (16.02.04 22:29) [8]

> К чему так много ???????

К тому, что зачем играть в пинг-понг в валенках, если для этого существуют кроссовки?

F1 - OnKeyPress.


 
Дубинин Алексей ©   (2004-02-16 22:36) [11]


> К тому, что зачем играть в пинг-понг в валенках, если для
> этого существуют кроссовки?


Согласен. Просто ваш способ еще не увидел когда писал свой. Теперь и я тоже знаю как сделать проще. Спасибо. Но в любом случае мой способ, тоже способ :-))

Удачи!


 
Zvr@b ©   (2004-02-16 23:41) [12]

Спасибо всем за активность!



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

Текущий архив: 2004.02.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
14-94188
default
2004-02-06 15:49
2004.02.29
Задачка


4-94231
DillerXX
2003-12-22 17:16
2004.02.29
Перезагрузка+БАТ


6-94066
dolphin1
2003-11-28 17:46
2004.02.29
ICQ


7-94221
egornik
2003-12-11 18:23
2004.02.29
ДРАЙВЕР


1-93949
Grihan
2004-02-17 17:53
2004.02.29
ModalResult