Главная страница
    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.004 c
2-1316964668
Avpsol
2011-09-25 19:31
2012.01.08
Проблема с построением цикла


1-1279098114
packpaul
2010-07-14 13:01
2012.01.08
Реализация null-методов класса в Delphi


2-1317192067
Alex_C
2011-09-28 10:41
2012.01.08
ValueListEditor - вид 3D как в Object Inspector


2-1317295658
Колька
2011-09-29 15:27
2012.01.08
MDI


1-1275582894
alpp
2010-06-03 20:34
2012.01.08
слияние 2-х файлов word в один





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский