Войти

Показать полную графическую версию : [решено] Delphi | Обработка исключительной ситуации


Madmech
20-10-2006, 18:51
Вопрос совсем дурной, но какой уж есть, ибо аз есмь ламер. Есть некое поле, в которое, по идее говоря, должно вводиться число. Потом нажимаем на кнопку, и строковый результат преобразуется в число. Если поле пустое или там какой-нибудь другой символ, отличный от численного типа данного (в моем случае integer), то при нажатии выдается ошибка: "EConvertError". И программа слетает. Как предотвратить эту пакость? То есть, чтобы вызывался другой механизм, типа выдавалось сообщение: "Введите число!" Ясно, что надо применять механизм try...except...end; Но у меня что-то не получается. :(

hasherfrog
20-10-2006, 19:05
function IsInt(st:string): boolean ;
var
a:integer;
begin
result:=false;
for a:=1 to length(st) do
if not (st[a] in ['1','2','3','4','5','6','7','8','9','0']) then
exit;
result:=true;
end;

function IsInteger(S: String) : Boolean;
var
aNo,err:integer;
begin
val(S,aNo,err);
if err=0 then result:=true else
result:=false;
end;

http://www.delphipages.com/tips/copyview.cfm?ID=197

Madmech
22-10-2006, 19:50
hasherfrog
Спасибо, проблема решена! Я спасен! :)




© OSzone.net 2001-2012