Форум: "Начинающим";
Текущий архив: 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