Главная страница
    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.089 c
15-1269984282
Petr V. Abramov
2010-03-31 01:24
2010.08.27
а давайте обсудим весну :)


15-1270539779
Игорь
2010-04-06 11:42
2010.08.27
Yandex Деньги через SMS


15-1267104405
GDI+
2010-02-25 16:26
2010.08.27
Вопрос знатокам ассеблера и современных процессоров


2-1265953833
n_sch
2010-02-12 08:50
2010.08.27
Rave Reports 5


15-1265664604
Юрий
2010-02-09 00:30
2010.08.27
С днем рождения ! 9 февраля 2010 вторник





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский