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

Вниз

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

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

Наверх




Память: 0.48 MB
Время: 0.048 c
15-1265188639
12
2010-02-03 12:17
2010.08.27
Тем, кто работал с Oracle и MSSQL. C чем Вам удобнее показалось?


15-1274747389
Юрий
2010-05-25 04:29
2010.08.27
С днем рождения ! 25 мая 2010 вторник


15-1268760103
Делфиец
2010-03-16 20:21
2010.08.27
Изучают ли Делфи в ВУЗАХ


2-1268287795
zod2009
2010-03-11 09:09
2010.08.27
Получить дату первого числа, тякущего месяца


6-1222332748
santey
2008-09-25 12:52
2010.08.27
winsock2