Главная страница
    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.45 MB
Время: 0.013 c
9-1110828695
Micke
2005-03-14 22:31
2005.12.18
Новая версия God Mode 0.0.2a


2-1133740879
HF-Trade
2005-12-05 03:01
2005.12.18
Прервать работу основной процедуры - из вызванной процедуры...


1-1132744928
К00е
2005-11-23 14:22
2005.12.18
Как заблокировать ctrl+alt+f1 комбинацию в litestep?


2-1133447020
dj0n
2005-12-01 17:23
2005.12.18
вопрос по image!!!


2-1133521765
-=SPIDER=-
2005-12-02 14:09
2005.12.18
Проблема при удалении папки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский