Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2011, 02:43   #1
minamoto
Пользователь
 
Регистрация: 11.07.2011
Сообщений: 20
По умолчанию 2 Case в 1

Всем привет!

Как же тяжело после php или as2 переходить на дельфи. Разные миры программирования. Если там это легко сделать, то здесь надо приложить усилия, чот бы заработало.

Собственно суть темы:

Если пишу вот так, то все работает
Код:
var number : integer;

begin
  number := 1;

   Case number of

   1: Memo1.Lines.Add('1');
   2: Memo1.Lines.Add('2');

   end;

end;
Если пишу, вот так, то не работает
Код:
var number, number2 : integer;

begin
  number := 1;
  number2 := 2;
   Case number of

   1: Memo1.Lines.Add('1');
   2: Memo1.Lines.Add('2');

   Case number2 of

   1: Memo1.Lines.Add('1');
   2: Memo1.Lines.Add('2');

   end;

   end;

end;

Объясните пожалуйста, почему так не работает? Мне нужно что бы если выполнилось одно условие, то по этому выполненому условию проходил бы разбор вложенного условия.
minamoto вне форума Ответить с цитированием
Старый 17.07.2011, 02:47   #2
minamoto
Пользователь
 
Регистрация: 11.07.2011
Сообщений: 20
По умолчанию

Аа, понял свой касяк, тупонул. Как удалить тему?

Код:
var number, number2 : integer;

begin

  number := 2;
  number2 := 2;
   Case number of

   1: Memo1.Lines.Add('1');
   2: begin

   Memo1.Lines.Add('2');

   Case number2 of

   1: Memo1.Lines.Add('1');
   2: Memo1.Lines.Add('2');

   end;

   end;

   end;
А как сделать, что бы текстовые значения обрабатывались?

Последний раз редактировалось minamoto; 17.07.2011 в 02:58.
minamoto вне форума Ответить с цитированием
Старый 17.07.2011, 03:01   #3
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

что вы имеете в веду под словом обрабатывались?
Pein95 вне форума Ответить с цитированием
Старый 17.07.2011, 03:28   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

minamoto, используйте утилиты для форматирования кода в приятный вид.
Будет проще разобраться...

во воводу темы. Case внутири другого case возможен:
Код:
case One-case of
  n:
    begin
    {...case блок-1...}
      case Two-case of
         n2:
            begin
         {...case блок-2...}
            end; //cse 2 n2
       end; //case 2
    end; //case 1 n
end; //case 1
case используется для создания условий выполнения кода, только при определённых условиях, варианты котрого представляются только в виде целых чисел.

Последний раз редактировалось Человек_Борща; 17.07.2011 в 03:33.
Человек_Борща вне форума Ответить с цитированием
Старый 17.07.2011, 04:45   #5
minamoto
Пользователь
 
Регистрация: 11.07.2011
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Pein95 Посмотреть сообщение
что вы имеете в веду под словом обрабатывались?
я имею ввиду, что вот это не будет работать:

Код:

var str : string;

begin

  str := 'text1';

   Case str of

   'text1': Memo1.Lines.Add('text1');
   'text2': Memo1.Lines.Add('text2');

   end;

end;


Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
minamoto, используйте утилиты для форматирования кода в приятный вид.
Будет проще разобраться...
Приведенный вами код тоже трудно читаем по моему мнению. Без подстветки в begin end очень трудно разбираться. Получается каша, не важно даже, ваш это код или чей-то другой. Для маленького кода который, в первом посте влом формировать расставлять код.

Если вы знаете какой нибудь плагин с подсветкой синтаксиса для delphi7, то буду признателен.



Цитата:
Сообщение от Человек_Борща Посмотреть сообщение

во воводу темы. Case внутири другого case возможен:
Код:
case One-case of
  n:
    begin
    {...case блок-1...}
      case Two-case of
         n2:
            begin
         {...case блок-2...}
            end; //cse 2 n2
       end; //case 2
    end; //case 1 n
end; //case 1
case используется для создания условий выполнения кода, только при определённых условиях, варианты котрого представляются только в виде целых чисел.
Я во втором посте написал в чем я ошибся, из-за невнимательности.

Почему в case нельзя в качестве проверяемого условия подставлять текст? с чем это связано? и есть ли какие нибудь решения, что бы в виде case можно было проверять текстовые условия?

ох как не удобно в дельфи работать. С непривычки. Приходится использовать if else if
minamoto вне форума Ответить с цитированием
Старый 17.07.2011, 05:31   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

знаю плагин. И даже не плагин. А монстр. И этот монстр станет вашим незаменимым помошником. Называется CnWizzards обитает на http://cnpack.org/

там есть все что угодно. От подстветки синтаксиса до удобного бэкапера проекта=) И даже больше....

Последний раз редактировалось Человек_Борща; 17.07.2011 в 05:37.
Человек_Борща вне форума Ответить с цитированием
Старый 17.07.2011, 05:36   #7
minamoto
Пользователь
 
Регистрация: 11.07.2011
Сообщений: 20
По умолчанию

спасибо за советы, попробую поставить плагин.

А почему обязательно в верхнем регистре нужно? с чем это связано?
Буквы по другому восприниматься начинают? или буквы в верхнем регистре не палятся, что они буквы, а не цифры?

Если такая конструкция работает, то пусть хотя бы такая.
Еще раз спасибо!
minamoto вне форума Ответить с цитированием
Старый 17.07.2011, 05:44   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

По поводу этого хитрого приёма лучше уточнять у справки delphi. В 5 утра уже плохо думается.

Перевод символов в верхний регистр уменьшит различие строк.
И таким образом у вас не будет проблем с <привет> и <ПрИвЕт>. Когда все будет так: <ПРИВЕТ> и <ПРИВЕТ>.
НО также не забывает поудалять пробелы по бокам, ибо:
<ПРИВЕТ> и <ПРИВЕТ > - это уже разные строки.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
case от а до я Horus92 Помощь студентам 7 15.07.2010 01:43
Use case elenSV Помощь студентам 0 09.06.2010 22:28
Case of Lemo Помощь студентам 4 06.06.2010 01:12
for and case искандрик Помощь студентам 5 16.12.2009 14:50
case Кирилл17 Помощь студентам 6 28.12.2008 10:11