![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
Alucard |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Реальное имя: Влад Репутация: ![]() ![]() ![]() |
Кнопка считывает число из 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; Сообщение отредактировано: Alucard - 17.05.2009 23:01 |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Здесь Try/Except ни разу не нужен. Достаточно:
if TryStrToInt(Edit1.Text, k) then begin Если строка в Edit1.Text не будет числом, или будет пустой, или будет представлять число, которое не помещается в диапазон Integer-а, то TryStrToInt вернет False, и ничего происходить не будет. Иначе - все как и было, TryStrToInt вернула True, в k хранится число, работа продолжается... Второй раз, в конце цикла, можно использовать уже обычный StrToInt, потому что уже ясно - в Edit1.Text хранится число. Хотя что-то мне подсказывает, что это можно сделать гораздо проще... Полное задание и описания всех переменных приведи... |
Alucard |
![]()
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Реальное имя: Влад Репутация: ![]() ![]() ![]() |
Дан массив целых чисел (n=10), заполненный случайным образом числами из промежутка [-40, 30]
• удалить из него все элементы, которые состоят из одинаковых цифр (включая однозначные числа); • вставить число k перед всеми элементами, в которых есть цифра 1 (k вводить с клавиатуры); • переставить первые три и последние три элемента местами, соблюдая их следование. Код a,b:array[1..10] of integer; i:byte; m,n:integer; volvo Нужно использовать именно Ty Except, По идее нужный кусок выглядит так Код Try k:=StrToInt(edit1.Text); except showmessage('Введи число, дубина'); edit1.SetFocus; exit; end; Но всё равно ошиба вылазит ![]() Сообщение отредактировано: Alucard - 18.05.2009 11:51 |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
procedure TForm1.Button3Click(Sender: TObject);Прекрасно ловит НЕчисло в 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 (галочка в самом низу окна) |
![]() ![]() |
![]() |
Текстовая версия | 8.07.2025 18:37 |