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

Вниз

case   Найти похожие ветки 

 
qbegin   (2006-11-07 19:23) [0]

Как быть в такой ситуации
 case ExmplDb.XNum of
   1: ....
   2: ....
   6:
   begin
     if ExmplDb.YNum = 12 then
       ShowMessage("12 ящиков спиртного :)")
     else
       ShowMessage("else");
   end;
   else
     ShowMessage("else");
 end;


В одном из условии case есть дополнительная проверка условия if, и при не верном для нас --> if срабатывает в else и я вынужден совершать такую же операцию, как при case ... --> else.

Оператор case не предпологает каких либо других решений? Или вернее, как можно по другому это сделать?


 
Percent   (2006-11-07 19:29) [1]

Брррр... Ничего не понятно...

procedure DoOnElse;
begin
  ShowMessage("else");
end;

...
case ExmplDb.XNum of
  1: ....
  2: ....
  6: if ExmplDb.YNum = 12 then
        ShowMessage("12 ящиков спиртного :)")
      else
        DoOnElse    
  else
    DoOnElse
end;

P.S. Опять кого-то лень одолевает две строчки кода написать.


 
qbegin   (2006-11-07 19:32) [2]

Да нет - не лень. Просто не знаю как правильно, вот и спрашиваю.


 
Anatoly Podgoretsky ©   (2006-11-07 19:34) [3]

> qbegin  (07.11.2006 19:23:00)  [0]

А смысл выдавать сообщение ELSE


 
Percent   (2006-11-07 19:37) [4]

Просто не знаю как правильно, вот и спрашиваю.

Ты можешь сформулировать:
1. Что тебе надо?
2. Что ты уже написал?
3. Почему то, что ты написал, не соответствует тому, что тебе надо?

А то какая-то окрошка, а не вопрос.


 
Anatoly Podgoretsky ©   (2006-11-07 19:42) [5]

> Percent  (07.11.2006 19:37:04)  [4]

Он хочет зачем то вывести на экран слово ELSE


 
qbegin   (2006-11-07 19:44) [6]

Ну собственно мой вопрос заключался в возможности перейти к case -> else, изнутри срабатывания одного из условий case. Как я понял такой возможности нет.
Т.е. типа такого сделать нельзя.

case tmp.t1 of
1:
3:
7: if tmp.t2 = 8 then CaseGoToElse;
else
...
end;


Слово else, и прочие совпадения - случайны. Это пример.


 
Percent   (2006-11-07 19:47) [7]

Он хочет зачем то вывести на экран слово ELSE

О Господи! Неисповедимы пути твои!
А case то зачем?!


 
Percent   (2006-11-07 19:50) [8]

[6] qbegin   (07.11.06 19:44)
в возможности перейти к case -> else


А давай не к case -> else, а сразу в то место, где все "else" обрабатываются.
То есть, как в [1]...


 
Leonid Troyanovsky ©   (2006-11-07 19:51) [9]


> qbegin   (07.11.06 19:44) [6]

>  Как я понял такой возможности нет.


Такой возможности нет.

--
Regards, LVT.


 
qbegin   (2006-11-07 19:51) [10]

Всё ок, всй понятно единственный хороший способ в [2]. Всем спасибо!


 
qbegin   (2006-11-07 19:52) [11]

в [1] т.е.


 
Leonid Troyanovsky ©   (2006-11-07 19:57) [12]


> qbegin   (07.11.06 19:52) [11]

> в [1] т.е.


Кста, никто никого ни к чему не принуждал.

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2006-11-07 19:59) [13]

А чем лучше вызов функии, которая вызовет другую функцию, вместо прямого вызова?


 
qbegin   (2006-11-07 20:03) [14]


> А чем лучше вызов функии, которая вызовет другую функцию,
>  вместо прямого вызова?


А напрямую - два раза описывать одно и тоже. У меня же не одна строчка как в примере Showmessage("Else") там.


 
Leonid Troyanovsky ©   (2006-11-07 20:12) [15]


> qbegin   (07.11.06 20:03) [14]

> >  вместо прямого вызова?
> А напрямую - два раза описывать одно и тоже.


Зачем описывать, если требуется лишь вызов.

--
Regards, LVT.


 
Плохиш ©   (2006-11-08 00:29) [16]

Настроение подняли :-)) А то уже дремать начал :-)
Поприкалываюсь и я ;-)


....
label Super1;
....
case ExmplDb.XNum of
  1: ....
  2: ....
  6:
  begin
    if ExmplDb.YNum = 12 then
      ShowMessage("12 ящиков спиртного :)")
    else
      goto Super1;
  end;
  else
Super1:
    ShowMessage("else");
end;


 
Германн ©   (2006-11-08 01:55) [17]


> Плохиш ©   (08.11.06 00:29) [16]
>
> Настроение подняли :-)) А то уже дремать начал :-)
> Поприкалываюсь и я ;-)

Нормальный пример, кстати.


 
Плохиш ©   (2006-11-08 02:15) [18]


> Нормальный пример, кстати.

Ну, дык, а то тут утверждают, что возможности нет ;-)


 
Германн ©   (2006-11-08 02:41) [19]


> Плохиш ©   (08.11.06 02:15) [18]
>
>
> > Нормальный пример, кстати.
>
> Ну, дык, а то тут утверждают, что возможности нет ;-)
>

Но тут многие и за "чистоту расы", а там ты не проходишь! :-(


 
Anatoly Podgoretsky ©   (2006-11-08 09:48) [20]

> Плохиш  (08.11.2006 02:15:18)  [18]

Возможности чего? Он же спрашивает как из ветки N перейти в ветку ELSE а не вызвать внешнею процедуру и там и там. Конструкция case такого не позволяет, значит не та конструкция выбрана.


 
Плохиш ©   (2006-11-08 10:55) [21]


> Anatoly Podgoretsky ©   (08.11.06 09:48) [20]

А Германн говорит, что [16] работает ;-)


 
Anatoly Podgoretsky ©   (2006-11-08 11:31) [22]

А у меня что к Goto есть претензии?
Кроме того работает или нет я проверять не буду, нет ни желания, как нет и уверенности, что работает.


 
Плохиш ©   (2006-11-08 11:43) [23]


> Anatoly Podgoretsky ©   (08.11.06 11:31) [22]
> А у меня что к Goto есть претензии?

А как надо расценивать [20]?

> Кроме того работает или нет я проверять не буду, нет ни
> желания, как нет и уверенности, что работает.

Вот и будешь всю жизнь мучиться от неизвестности :-P


 
Anatoly Podgoretsky ©   (2006-11-08 12:20) [24]


> А как надо расценивать [20]?

Расченивать надо в контексте переноса ShowMessage в отдельную процедуру. При том вместо просто вызова ShowMessage добавляется вызов процедуры, где делается тот же самый вызов ShowMessage :-)


 
Плохиш ©   (2006-11-08 12:25) [25]


> Anatoly Podgoretsky ©   (08.11.06 12:20) [24]

Но я-то этого не предлагал 8-O
A [18] было написано по поводу [9].


 
Anatoly Podgoretsky ©   (2006-11-08 12:34) [26]

> Плохиш  (08.11.2006 12:25:25)  [25]

А я тоже пальцем не показывал :-)
И чего ты пристал с номерами ко мне?
Вроде бы все сказано в ветке.



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

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

Наверх





Память: 0.51 MB
Время: 0.043 c
2-1162672448
duk_777
2006-11-04 23:34
2006.11.26
Формы


1-1160594035
AndreyGor
2006-10-11 23:13
2006.11.26
Как работать с вордом без компонент, без COM, а напрямую?


8-1145342391
mike66
2006-04-18 10:39
2006.11.26
bezie


6-1150190015
Tempora
2006-06-13 13:13
2006.11.26
Проблема с Indy. Помогите найти ошибку.


1-1160656672
Ш-К
2006-10-12 16:37
2006.11.26
Singleton и интерфейсы





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