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

Вниз

трансформация строки в число ...   Найти похожие ветки 

 
Malamba   (2005-11-29 13:09) [0]

Братцы, подскажите по-быстрому, не могу вспомнить, как делал и делал ли вообще:

трансформирую строку в денежку
cKol = CCur(MyTextBox.Text)

юзер вводит число - нормально
юзер вводит запятую - нормально
юзер вводит точку - ненормально
юзер звереет и вводит текстъ - ужас

Кто как делает:
проверять каждый символ, перебегая по всей строке в поисках вредных символов,
обрабатывать error с указанием пользователю, что так делать нехорошо, или еще как?


 
Ega23 ©   (2005-11-29 13:13) [1]


procedure TFClassStates.NumericEditKeyPress(Sender: TObject;
 var Key: Char);
begin
 if not (Key in ["0".."9", DecimalSeparator, #8]) then Key:=#0;
end;


 
Malamba   (2005-11-29 13:48) [2]

Да, это оно, обработка нажатия клавишы.

Спасибо.


 
Ega23 ©   (2005-11-29 14:02) [3]


> Да, это оно, обработка нажатия клавишы.
>


Это не совсем оно. Не защищает от вставки из буфера, от ввода строки "123.123.123" и отрицательных чисел.


 
Begin   (2005-11-29 15:10) [4]

Денежных значений тоже бывает меньше нуля... :)

if
(not (Key in ["0".."9", DecimalSeparator, "-", #8, #46, #37, #9, #13])) or
((Key = ".") and (Pos(".",Text) > 0)) or
((Key = "-") and ((SelStart <> 0) or (Pos("-",Text) > 0)))
then Key:=#0


 
Ega23 ©   (2005-11-29 15:35) [5]


> Begin   (29.11.05 15:10) [4]


От вставки из буфера всё равно не защищает.


 
Leonid Troyanovsky ©   (2005-11-29 15:56) [6]


> Ega23 ©   (29.11.05 15:35) [5]

> От вставки из буфера всё равно не защищает.


http://groups.google.com/group/borland.public.delphi.vcl.components.writing/msg/41b62f85dd405cdf

--
Regards, LVT.


 
Ega23 ©   (2005-11-29 16:35) [7]


> Leonid Troyanovsky ©   (29.11.05 15:56) [6]


Да мне не надо. Я обычно потом ещё одну проверку делаю. Когда на "ОК" нажали.
Просто код в [1] спасает в 95% случаев.



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

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

Наверх




Память: 0.48 MB
Время: 0.051 c
2-1133252752
sapsi
2005-11-29 11:25
2005.12.18
Одна таблица- 2 грида


8-1121170462
nstur
2005-07-12 16:14
2005.12.18
Выполнить Stretch jpg файла


6-1126192068
integery
2005-09-08 19:07
2005.12.18
помогите разобратса из TcpServer TcpClient


14-1132830130
TUser
2005-11-24 14:02
2005.12.18
Берем Аляску?


1-1131827370
Manufel
2005-11-12 23:29
2005.12.18
Запись элементов очень большого масива в файл с макс скоростью