Текущий архив: 2008.11.02;
Скачать: CL | DM;
Вниз
Проверка на ввод нечисловых символов и запятой. Найти похожие ветки
← →
{RASkov} © (2008-09-24 14:27) [40]> [33] Neket (24.09.08 14:15)
try
E:=StrToFloat(Edit.Text);
except
ShowMessage("Ошибка ввода числа "+Edit.Text);
Edit.SetFocus;
end;
А если использовать Val то можно и курсор установить на место первого ошибочного символа...
← →
Dennis I. Komarov © (2008-09-24 14:28) [41]
> Dennis I. Komarov © (24.09.08 14:21) [38]
> возможно вы имели ввиду brain.dll ?
ее самую...
try exept - знаешь что такое?
в [2] так же есть tryStrToFloat, осталось за малым - почитать хелп, подключив библиотеку...
← →
Neket (2008-09-24 14:31) [42]Ладно мужики. Спасибо. Реально благодарен всем. Просто есть люди которые программирование на хлеб зарабатываю, а есть те кому приходится время от времени ввиду того что начальство жлобится на новую штатную единицу, писать самому. Вот и такая разница в знаниях. Ещё раз всем спасибо.
← →
Vlad Oshin © (2008-09-24 14:32) [43]procedure TForm1.Edit1Change(Sender: TObject);
var
a:double;
i:integer;
s:string;
begin
if Length(edit1.Text)=0 then exit;
if not(trystrtofloat(Edit1.Text,a)) then
begin
ShowMessage("Неправильное значение. Последний символ удален");
i:=length(edit1.Text);
s:=edit1.Text;
setlength(s,i-1);
edit1.Text:=s;
end;
end;
← →
{RASkov} © (2008-09-24 14:34) [44]> [43] Vlad Oshin © (24.09.08 14:32)
:)
Проще тогда и в самом деле вести контроль допустимых символов. "Легче" алгоритм будет )
← →
MsGuns © (2008-09-24 14:38) [45]function CheckSymbolForFloatText(Edit: TEdit; Key: Char): Char;
begin
result := Key;
with Edit do
if not (Key in ["0".."9","-",DecimalSeparator,Char(VK_BACK),Char(VK_TAB)]) or
((Key=",") and (Pos(Key,Text)>0)) or
((Key="-") and ((Pos(Key,Text)>0) or (SelStart>0))) then result := #0;
end;
В OnKeyPress едита
Key := CheckSymbolForFloatText(TEdit(Sender),Key)
В OnChange эдита проверка TryStrToFloat
← →
MsGuns © (2008-09-24 14:41) [46]Пардон, вместо запятой при проверке надо поставить сепаратор
← →
Anatoly Podgoretsky © (2008-09-24 15:03) [47]
> А если использовать Val то можно
Не надо, поскольку системно независима, подходит только для импорта/экспорта.
← →
Anatoly Podgoretsky © (2008-09-24 15:17) [48]> Neket (24.09.2008 14:07:31) [31]
Ты теперь в другую крайность падаешь.
Никакой искуственный ителлект и прочее не требуется, тип поля известен или целочисленный, или с плавающей запятой и попытка преобразование сразу скажет дурак пользователь или нет, не говоря уже о случаях автоматической проверки по маске, тогда уйти из поля нельзя будет. УЖАС.
Не надо ограничивать пользователя, до закрытия формы, может я хочу сформировать поле коипируя его части из других мест, например из других полей той же формы и запрет на выход не позволит это сделать.
И прикинь, что подумает пользователь - кто из вас двоих дурак?
← →
Anatoly Podgoretsky © (2008-09-24 15:18) [49]> Neket (24.09.2008 14:20:37) [37]
Как будет оповещен, дело не в проверке - дело в оповещение?
Страницы: 1 2 вся ветка
Текущий архив: 2008.11.02;
Скачать: CL | DM;
Память: 0.55 MB
Время: 0.014 c