Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.26;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.036 c
15-1162752423
Anatoly Podgoretsky
2006-11-05 21:47
2006.11.26
APC


15-1162991556
Stanislav
2006-11-08 16:12
2006.11.26
Кто с чего начинал?


15-1162891139
Dush
2006-11-07 12:18
2006.11.26
Правильный "About"


15-1163023829
Орион
2006-11-09 01:10
2006.11.26
Задачка


3-1159010897
Mate
2006-09-23 15:28
2006.11.26
Как сохранить (или конвертировать) базу с Unicod ом в формате Acc