Главная страница
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.018 c
6-94089
Silentor
2003-12-24 20:45
2004.02.29
Загрузка ресурсов: blocking vs nonblocking


1-93921
p_sA[11]
2004-02-15 12:01
2004.02.29
Что за трабла с MEMO???


14-94102
VAleksey
2004-02-09 16:32
2004.02.29
Запреты.


1-93839
uu
2004-02-16 18:49
2004.02.29
Задержка при завершении программы


3-93802
Eyfel
2004-01-28 17:10
2004.02.29
Динамически создавать экземпляры TQuery....