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

Вниз

Можно ли индексированно обратиться к перечисляемому типу?   Найти похожие ветки 

 
Ega23   (2003-12-23 10:45) [0]

Type
TExecKind = (ekOpen, ekExec,ekCmd, ekApp, ekNone, ekInfo, ekHelp);

Писать функцию перевода? Но ведь наверняка внутри ekOpen=0, ekExec=1 и т.д.


 
TUser   (2003-12-23 10:46) [1]

Писать функцию перевода.


 
Skier   (2003-12-23 10:46) [2]


> ? Но ведь наверняка внутри ekOpen=0, ekExec=1 и т.д.

Угу.

А зачем тебе всё это ?


 
Silver Alex   (2003-12-23 10:48) [3]

можно Ord(ekOpen), а если у тебя Delphi 7 вообще можно писать
TExecKind = (ekOpen=10, ekExec=23,ekCmd=34, ekApp=56, ekNone=78, ekInfo=81, ekHelp=99);


 
Ega23   (2003-12-23 10:48) [4]

Да если бы можно было, код красивше получался....
Ладно, спасибо.


 
Ega23   (2003-12-23 10:49) [5]


> можно Ord(ekOpen), а если у тебя Delphi 7 вообще можно писать
>
> TExecKind = (ekOpen=10, ekExec=23,ekCmd=34, ekApp=56, ekNone=78,
> ekInfo=81, ekHelp=99);

О! То что надо!


 
wicked   (2003-12-23 10:51) [6]

или так
const values: array [TExecKind] of integer = (0, 1, 2, 3 etc)

кстати, очень часто в исходниках vcl встречается...


 
Sandman25   (2003-12-23 10:55) [7]

Кстати, можно и наоборот.
TExecKind(0) возвратит первый элемент типа.
Удобно при использовании компонентов с ItemIndex для выбора из списка.


 
Dred2k   (2003-12-23 12:29) [8]

> Ega23 © (23.12.03 10:45)

Да можно. Приводи к типу и все. Почти как массив. ;)


uses TypInfo;

type
TExecKind = (ekOpen, ekExec,ekCmd, ekApp, ekNone, ekInfo, ekHelp);

procedure TForm1.Button1Click(Sender: TObject);
var tmp : TExecKind;
begin
tmp := TExecKind(5);
ShowMessage(GetEnumName(TypeInfo(TExecKind), Integer(tmp)));
end;


 
PVOzerski   (2003-12-23 12:42) [9]

Я проще делаю: если знаю, что значения данного типа мне придется использовать в ариметических операциях, делаю его подмножеством целого, а возможные значения определяю как константы (а в сущности, и тип не нужен).

const
ekOpen=0;
ekExec=1;
ekCmd=2;
ekApp=3;
ekNone=4;
ekInfo=5;
ekHelp=6;
type
TExecKind=ekOpen..ekHelp;



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

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

Наверх




Память: 0.46 MB
Время: 0.016 c
4-25670
igornov
2003-10-15 15:31
2004.01.09
Как определить момент когда пользователь сделал Log off?


9-25176
dimodim
2003-05-30 14:02
2004.01.09
Помогите с 3d в Дельфи икс и 2 *.X соеденить


8-25456
dzmitry_
2003-09-04 14:29
2004.01.09
ВЫВЕСТИ часть TMetafile в TImage или TPaint, или векторная график


1-25307
Андреев
2003-12-22 20:34
2004.01.09
Создание дочернего окна


4-25652
DillerXX
2003-11-06 14:30
2004.01.09
CreateWindow





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