Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2012.01.08;
Скачать: [xml.tar.bz2];

Вниз

Обработка исключений   Найти похожие ветки 

 
Дмитрий   (2009-04-20 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   (2009-04-20 08:12) [1]

Вообще говоря ответ тут только один - вдумчиво почитать, что такое исключение.


 
Demt   (2009-04-20 08:39) [2]

Исключение в IF - это else, но никак не try .. except. Читайте матчасть :)


 
MTsv DN   (2009-04-20 12:25) [3]

Подключи ERR.PAS...


 
MTsv DN   (2009-04-20 12:27) [4]

Хотя для данного примера правильно сказали уже - RTFM...


 
Дмитрий   (2009-04-20 15:01) [5]

Да я знаю что для цикла исключение это else, ну тогда подскажите хотя бы как зделать так что бы при Edit1.text не равным ПРИВЕТ и ПОКА, он присваивал (пусть будет edit3.text) слово ОШИБКА! Как нибудь одной (общей) командой только не так:
If Edit1.text = "Привет" then
Edit2.text := "Привет"
Else edit3.text := "Ошибка";


 
Дмитрий   (2009-04-20 15:02) [6]

Да я знаю что для цикла исключение это else, ну тогда подскажите хотя бы как зделать так что бы при Edit1.text не равным ПРИВЕТ и ПОКА, он присваивал (пусть будет edit3.text) слово ОШИБКА! Как нибудь одной (общей) командой только не так:
If Edit1.text = "Привет" then
Edit2.text := "Привет"
Else edit3.text := "Ошибка";


 
Demt   (2009-04-21 09:06) [7]

Оператор условного выбора case?
case Ordinal expression of
     Ordinal value {,Ordinal value...} : Statement;
     {...}
      else Statement;
  end;


 
Дмитрий   (2009-04-21 19:28) [8]

Demt слушай а поподробней можешь описать? Ну типо что такое Statement и т.д? Просто не совсем понял как применить этот оператор к моему примеру.


 
Demt   (2009-04-22 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 не искал аналогичной функции, но скорее всего она там есть, только называется по другому.


 
Дмитрий   (2009-04-22 12:51) [10]

Demt большое спасибо все работает!!!



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2012.01.08;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.003 c
2-1317566758
Reist
2011-10-02 18:45
2012.01.08
This form of method call only allowed for class methods


2-1317495602
Leon-Z
2011-10-01 23:00
2012.01.08
Соединение с БД MySQL.


15-1315302753
Pit
2011-09-06 13:52
2012.01.08
Особенности отображения сайтоа на iPhone


15-1316162516
И. Павел
2011-09-16 12:41
2012.01.08
Переезд в Санкт-Петербург


2-1316964668
Avpsol
2011-09-25 19:31
2012.01.08
Проблема с построением цикла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский