Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Как обойти подводный Камень приведения к типу   Найти похожие ветки 

 
Sairex   (2010-03-05 14:53) [0]

Привет, Госпада.
 Столкнулся с оттакой интересной ситуацией. Есть вот такое перечисление:
TMyTest = (
 m0 = 0,
 m1= 1,
 m2 = 5,
 m3 = 25
);
Все вроде бы нормально, но...
var MyParam:Byte; MyTest, I:TMyTest;
   Res:Boolean;
.....
MyParam:=4;
MyTest:=TMyTest(MyParam);
Res:=false;
for I:=low(MyTest) to High(MyTest) do
  if MyTest = I then Res:=true;
.....
Результат будет True.  Как обойти это?
Через case делать не шибко хочется....


 
12 ©   (2010-03-05 15:13) [1]

ээ..может делать не так, а более по человечески? :)


 
Sairex ©   (2010-03-05 15:13) [2]

через рекорды?


 
Медвежонок Пятачок ©   (2010-03-05 15:15) [3]

type TMyTest = (m0, m1, m2, m3);

const arr : array[TMyTest] of Integer = (0,1,5,25);


 
Медвежонок Пятачок ©   (2010-03-05 15:19) [4]

хотя правильный ответ зависит от того, чего же ты хочешь на самом деле.

возможно лучше подойдет вообще set of byte


 
Sairex ©   (2010-03-05 16:51) [5]

Еще вопросик, а то котелок совсем не варит :(
Можно ли в const массив запихать рекорды?
Ну наподобии:
type MyRecord = record
  id:Integer;
  Value:String;
 end;

const Ar:Array [0..1] of Myrecord=(тут незнаю что и как писать*);

---------
* в си можно записать (.ID = 1, .Value = "text")


 
Игорь Шевченко ©   (2010-03-05 16:59) [6]


> Можно ли в const массив запихать рекорды?


можно. синтаксис описан в справке


 
Sairex ©   (2010-03-05 17:35) [7]

Разобрался. Спасибо


 
wallaby   (2010-03-07 11:10) [8]

перечисление TMyTest = (m0 = 0, m1= 1, m2 = 5, m3 = 25); содержит 26 значений от 0 до 25 из которых 4 именованные. Подробнее здесь:
http://docwiki.embarcadero.com/RADStudio/en/Simple_Types#Enumerated_Types_with_Explicitly_Assigned_Ordinality



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.06 c
2-1273597915
Kukulkan
2010-05-11 21:11
2010.08.27
Проверка даты на сервере!!!


15-1266095159
Peace of cake
2010-02-14 00:05
2010.08.27
Как работает функция Ord?


6-1217065389
Надуев Алексей
2008-07-26 13:43
2010.08.27
Соединение Internet


15-1271367002
Юрий
2010-04-16 01:30
2010.08.27
С днем рождения ! 16 апреля 2010 пятница


15-1275545924
Alx2
2010-06-03 10:18
2010.08.27
Задачка про максимальный столб из "черепах"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский