Главная страница
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.017 c
1-93839
uu
2004-02-16 18:49
2004.02.29
Задержка при завершении программы


1-93913
OlimPer
2004-02-18 15:38
2004.02.29
копирование!!!!!!!


8-94040
Junior
2003-10-25 13:43
2004.02.29
Построение графика динамически


6-94079
nejest
2003-12-22 16:40
2004.02.29
WNetEnumResource в чём ошибка?


1-93948
morev_s_a
2004-02-17 18:19
2004.02.29
Как напечатать несколько графиков на одной странице?