Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.012 c
4-1129795229
bva
2005-10-20 12:00
2005.12.18
Считать данные из другого приложения


2-1133527684
Не молодой
2005-12-02 15:48
2005.12.18
Удаление файла


2-1133369413
zxc
2005-11-30 19:50
2005.12.18
как из тхт заданное число символов прочитать


1-1132738006
BURN
2005-11-23 12:26
2005.12.18
Excel ==> DB


4-1129819909
user-as
2005-10-20 18:51
2005.12.18
Робота в реэстрi без дозволу адміна з допомогою WinAPI





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский