IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Try except
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Влад

Репутация: -  0  +


Кнопка считывает число из 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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Здесь Try/Except ни разу не нужен. Достаточно:

if TryStrToInt(Edit1.Text, k) then begin
// Все то, что ты делаешь сейчас
end;

Если строка в Edit1.Text не будет числом, или будет пустой, или будет представлять число, которое не помещается в диапазон Integer-а, то TryStrToInt вернет False, и ничего происходить не будет. Иначе - все как и было, TryStrToInt вернула True, в k хранится число, работа продолжается... Второй раз, в конце цикла, можно использовать уже обычный StrToInt, потому что уже ясно - в Edit1.Text хранится число.

Хотя что-то мне подсказывает, что это можно сделать гораздо проще... Полное задание и описания всех переменных приведи...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Влад

Репутация: -  0  +


Дан массив целых чисел (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;  


Но всё равно ошиба вылазит sad.gif((

Сообщение отредактировано: Alucard -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






procedure TForm1.Button3Click(Sender: TObject);
var
i, value: integer;
begin
try
value := StrToInt(Edit1.Text);
// Здесь, собственно, код

except
ShowMessage('Введи число, дубина');
end;
end;
Прекрасно ловит НЕчисло в 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 (галочка в самом низу окна)
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.10.2020 10:31
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name