Кнопка считывает число из Edit1 и вставляет его перед всеми числами, в которых есть цифра 1
Помогите вставить Try Except, что бы если edit1 оставить пустым, или вписать буквы, или ещё что то, кроме числа, что бы прога не вызывала ошибку, а просто ничего н епроисходило
Код
procedure TLABwork.Button3Click(Sender: TObject); var k,temp:integer; begin memo1.Clear; for i:=1 to 10 do a[i]:=b[i]; k:=StrToInt(edit1.Text); for i:=1 to 10 do begin temp:=0; if a[i]<0 then begin temp:=a[i]*-1; a[i]:=temp; end; m:=a[i] mod 10; n:=a[i] div 10; if (m=1) or (n=1) then begin if n=0 then begin k:=k*10; a[i]:=a[i]+k; if temp<>0 then a[i]:=a[i]*-1; memo1.lines.Add(intTostr(a[i])); end else begin k:=k*100; a[i]:=a[i]+k; if temp<>0 then a[i]:=a[i]*-1; memo1.lines.add(inttostr(a[i])); end; end; k:=StrToInt(edit1.Text); end; end;
Автор: volvo 18.05.2009 12:35
Здесь Try/Except ни разу не нужен. Достаточно:
if TryStrToInt(Edit1.Text, k) then begin // Все то, что ты делаешь сейчас end;
Если строка в Edit1.Text не будет числом, или будет пустой, или будет представлять число, которое не помещается в диапазон Integer-а, то TryStrToInt вернет False, и ничего происходить не будет. Иначе - все как и было, TryStrToInt вернула True, в k хранится число, работа продолжается... Второй раз, в конце цикла, можно использовать уже обычный StrToInt, потому что уже ясно - в Edit1.Text хранится число.
Хотя что-то мне подсказывает, что это можно сделать гораздо проще... Полное задание и описания всех переменных приведи...
Автор: Alucard 18.05.2009 15:48
Дан массив целых чисел (n=10), заполненный случайным образом числами из промежутка [-40, 30] • удалить из него все элементы, которые состоят из одинаковых цифр (включая однозначные числа); • вставить число k перед всеми элементами, в которых есть цифра 1 (k вводить с клавиатуры); • переставить первые три и последние три элемента местами, соблюдая их следование.
Прекрасно ловит НЕчисло в Edit1.Text... Только если ты запускаешь программу прямо из Дельфи, тебе надо отключить Tools -> Debugger Options -> Language Exception: Stop on Delphi Exceptions, ну, или запускать программу отдельно, из Windows Explorer-а, а не из IDE...
В случае Delphi 2006+ это отключается в Tools -> Options -> Debugger Options -> CodeGear Debuggers -> Notify on Language Exception (галочка в самом низу окна)