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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2009, 23:30   #1
Kolik317
Пользователь
 
Регистрация: 14.08.2009
Сообщений: 64
Вопрос опять CASE

есть функция - берет значения из радиогруппы с 3мя значениями L,UTC,DYN
Код:
function TForm2.getTZ: string;
begin
gettz:=form2.RadioGroup1.Items[radiogroup1.ItemIndex];
end;
как сделать такой код на проверку значения и присвоения строке
Код:
begin
case gettz() of
'L': str1:= '1';
'UTC': str1 = '2';
'DYN': str1 = '3';
что не так написал?=) ругается Ordinal type required и incompatible types : integer and string.

А кто код когда-нибудь научится оформлять по правилам?
Срочно читаем правила...

Последний раз редактировалось mihali4; 21.11.2009 в 23:42.
Kolik317 вне форума Ответить с цитированием
Старый 21.11.2009, 23:41   #2
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Эээ шото я не понял, а зачем так голову замарачивать, не проще проверять ItemIndex:
Код:
  case form2.RadioGroup1.ItemIndex of
    0 : str1 := '1';
    1 : str1 := '2';
    2 : str1 := '3';
  end;
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 21.11.2009, 23:54   #3
Kolik317
Пользователь
 
Регистрация: 14.08.2009
Сообщений: 64
По умолчанию

Спасибо =)
а ВОТ как для строки нашел=)
Код:
const
  vlist = 'первый, второй, третий';

var
  Values: TStringList;

procedure SetValues(VL : TStringList; S: String);
var
  I : Integer;
begin
  VL.CommaText := S;
  for I := 0 to CL.Count-1 do
    VL.Objects[I] := Pointer(I);
  VL.Sorted := True;
end;

function GetValueIndex(VL : TStringList; Match: String): Integer;
begin
  Result := VL.IndexOf(Match);
  if Result >= 0 then
    Result := Integer(VL.Objects[Result]);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  case GetValueIndex(Values, Edit1.Text) of
    -1: {не найден} ;
     0: Caption := '0';
     1: Caption := '1';
     2: Caption := '2';
  end;
end;

initialization
  VL := TStringList.Create;
  SetValues(VL, vlist);

finalization
  VL.Free;

п.с. правила прочитал, а правила оформления постов не вижу

Последний раз редактировалось Kolik317; 22.11.2009 в 00:25. Причина: из правил:Нашли ответ на стороне - приведите его в своем ответе, пусть он будет виден всем интересующимся - не у всех анлим.
Kolik317 вне форума Ответить с цитированием
Старый 22.11.2009, 00:05   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
п.с. правила прочитал, а правила оформления постов не вижу
Самая верхняя тема:
Цитата:
Объявление: Правила раздела (читать всем без исключения)
Оттуда:
Цитата:
2. Не использовать прикрепленные файлы для исходного текста программы и заданий. Для кода есть тег CODE (значок # в редакторе ответа).
mihali4 вне форума Ответить с цитированием
Старый 22.11.2009, 00:18   #5
Kolik317
Пользователь
 
Регистрация: 14.08.2009
Сообщений: 64
Хорошо

ok doc!

Код:
readln 'pravila razdela':=true

Вопросов больше нет
Kolik317 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Case Is nes@ Помощь студентам 0 18.11.2009 20:21
Ошибка в Case Чёрный Общие вопросы C/C++ 3 13.10.2009 03:36
Длинный Case Utkin Общие вопросы Delphi 3 14.08.2009 10:38
case Кирилл17 Помощь студентам 6 28.12.2008 10:11
И опять мэйлы.. Опять... Pusher PHP 6 28.06.2008 03:08