Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

case


Страницы:   1 2

qbegin ©   (2006-11-07 19:23:00) 

Как быть в такой ситуации
 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 не предпологает каких либо других решений? Или вернее, как можно по другому это сделать?


Anatoly Podgoretsky   (2006-11-08 12:34:00) [1]

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

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


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


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

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


Anatoly Podgoretsky   (2006-11-08 12:20:00) [3]


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

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


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


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

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

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

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


Anatoly Podgoretsky   (2006-11-08 11:31:00) [5]

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


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


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

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


Anatoly Podgoretsky   (2006-11-08 09:48:00) [7]

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

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


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


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

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


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


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

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


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


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

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


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

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


....
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;


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


> qbegin   (07.11.06 20:03) [14]

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


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

--
Regards, LVT.


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


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


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


Anatoly Podgoretsky   (2006-11-07 19:59:00) [14]

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


Leonid Troyanovsky   (2006-11-07 19:57:00) [15]


> qbegin   (07.11.06 19:52) [11]

> в [1] т.е.


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

--
Regards, LVT.


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

в [1] т.е.


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

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


Leonid Troyanovsky   (2006-11-07 19:51:00) [18]


> qbegin   (07.11.06 19:44) [6]

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


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

--
Regards, LVT.


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

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


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


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

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

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо