Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.02 c
14-94106
Aldor
2004-02-09 19:49
2004.02.29
Взрывы в Киеве


1-93851
Budy
2004-02-16 14:25
2004.02.29
Реестр


1-93930
anod
2004-02-15 00:43
2004.02.29
Create form


1-93976
desha
2004-02-17 10:48
2004.02.29
Опять про DLL и MDI


14-94160
xion
2004-02-07 04:37
2004.02.29
Функция Shell_NotifyIcon у меня вызывает RunTime ошибки. Почему?




   Наверх