Конференция "KOL" » Обработка исключений [Delphi]
 
  • Дмитрий (20.04.09 08:00) [0]
    У меня не большой вопрос! Есть программа ниже приведен примерный код но суть одна и та же:
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    try
    If Edit1.text = 'Привет' then
    Edit2.text := 'Привет';
    If Edit1.text = 'Пока' then
    Edit2.text := 'Пока';
    //и т.д.
    except
    Edit1.text := 'Исключение';
    end;
    end;

    end.

    И возникает вопрос почему когда Edit1.text не равен ни ПРИВЕТ ни ПОКА он не обрабатывает исключение, и не присваивает Edit1.text := 'Исключение'???
  • exero (20.04.09 08:12) [1]
    Вообще говоря ответ тут только один - вдумчиво почитать, что такое исключение.
  • Demt (20.04.09 08:39) [2]
    Исключение в IF - это else, но никак не try .. except. Читайте матчасть :)
  • MTsv DN (20.04.09 12:25) [3]
    Подключи ERR.PAS...
  • MTsv DN (20.04.09 12:27) [4]
    Хотя для данного примера правильно сказали уже - RTFM...
  • Дмитрий (20.04.09 15:01) [5]
    Да я знаю что для цикла исключение это else, ну тогда подскажите хотя бы как зделать так что бы при Edit1.text не равным ПРИВЕТ и ПОКА, он присваивал (пусть будет edit3.text) слово ОШИБКА! Как нибудь одной (общей) командой только не так:
    If Edit1.text = 'Привет' then
    Edit2.text := 'Привет'
    Else edit3.text := 'Ошибка';
  • Дмитрий (20.04.09 15:02) [6]
    Да я знаю что для цикла исключение это else, ну тогда подскажите хотя бы как зделать так что бы при Edit1.text не равным ПРИВЕТ и ПОКА, он присваивал (пусть будет edit3.text) слово ОШИБКА! Как нибудь одной (общей) командой только не так:
    If Edit1.text = 'Привет' then
    Edit2.text := 'Привет'
    Else edit3.text := 'Ошибка';
  • Demt (21.04.09 09:06) [7]
    Оператор условного выбора case?
    case Ordinal expression of
         Ordinal value {,Ordinal value...} : Statement;
         {...}
          else Statement;
      end;
  • Дмитрий (21.04.09 19:28) [8]
    Demt слушай а поподробней можешь описать? Ну типо что такое Statement и т.д? Просто не совсем понял как применить этот оператор к моему примеру.
  • Demt (22.04.09 07:59) [9]
    Объявляешь нужные константы, которые будем проверять (хоть сколько слов):
    const
     ed1 = 'ПРИВЕТ';

     ed2 = 'ПОКА';
     ed3 = 'привет';
     ed4 = 'пока';
    Помещаешь эти строчки например в Edit1Change:
     Case AnsiIndexStr(Edit1.Text, [ed1,ed2]) of

       0 : begin Edit3.Clear; Edit2.Text := 'Привет!'; end;

       1 : begin Edit3.Clear; Edit2.Text := 'Пока...' end;

     else begin Edit2.Clear; Edit3.Text := 'ОШИБКА!'; end;

     end;
    И всё проверяет.
    Небольшая ремарка: функция AnsiIndexStr находится в StrUtils (VCL!). В KOL не искал аналогичной функции, но скорее всего она там есть, только называется по другому.
  • Дмитрий (22.04.09 12:51) [10]
    Demt большое спасибо все работает!!!
 
Конференция "KOL" » Обработка исключений [Delphi]
Есть новые Нет новых   [134431   +15][b:0][p:0.001]