Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите разобраться с CASE  (Прочитано 5366 раз)
0 Пользователей и 1 Гость смотрят эту тему.
monrus
Опытный

ru
Offline Offline

« : 21-01-2006 20:38 » 

Не могу понять как можно сделать множественный выбор из строковых значений.
Например: когда ввожу какое-нить слово, хочу чтобы оно обрабатывалось с помощью Case, а потом выводился результат выбора?
Как это можно сделать. А-то много раз делать IF как-то глупо. Помогите.
Записан
Alf
Гость
« Ответ #1 : 21-01-2006 20:51 » 

Из строковых - никак, к сожалению. В большинстве языков, в том числе и в Pascal'e с его диалектами, селектор оператора выбора должен быть скалярного типа. Строки к таковым не относятся, так что самое очевидное решение - длинная цепочка if ... then ... else if ... и так далее. В противном случае придется переходить на C#, там такие штуки, как строковый селектор,  проходят.
« Последнее редактирование: 16-12-2007 15:46 от Алексей1153++ » Записан
sega
Гость
« Ответ #2 : 24-01-2006 06:41 » new

приблизительно мона так:

type
   TNumericChoiceParent = (ncp_Mother, ncp_Father, ncp_Child);

 procedure TForm1.btChooseClick(Sender: TObject);
 var
   S: string;
 begin
   S := InputEdit.Text;
   case TNumericChoiceParent(GetEnumValue(TypeInfo(TNumericChoiceParent), 'ncp_' + S)) of
     ncp_Mother: ShowMessage('Hello Mom Быть такого не может)');
     ncp_Father: ShowMessage('Hi, Dad -]');
     ncp_Child: ShowMessage('Shut up and eat your soup !-(');
   else
     ShowMessage('Who do you think that you are?');
   end;
 end;
« Последнее редактирование: 16-12-2007 15:44 от Алексей1153++ » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines