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

Вниз

Как передать в функцию перечесляемый тип?   Найти похожие ветки 

 
Got   (2005-11-01 11:34) [0]

Мастаки, хочу написать универсальную функцию, которая считывает из командной строки параметр и возвращает перечисляемы тип.
Параметры я хочу передавать такие - перечислямый тип и имя параметра командной строки. Как это сделать? У меня не выходит. Думал через Variant, но приведение результата(Integer) к этому типу невыходит - ругается...
Получилось только таким макаром:

...
Var1 := TEnum1(GetParamStr(ParamStrNameX, Integer(Low(TEnum1)), Integer(High(TEnum1))));
...

2 и 3 параметры для возврата по умолчанию и проверки границ.
Может я не туда рою, а все намного проще?


 
Leonid Troyanovsky ©   (2005-11-01 13:10) [1]


> Got   (01.11.05 11:34)  

> из командной строки параметр и возвращает перечисляемы тип.

> Параметры я хочу передавать такие - перечислямый тип и имя
> параметра командной строки. Как это сделать? У меня не выходит.


Вот пример для одной размерности (by Vladimir Titov):

uses
 TypInfo;

type
 TCommand = (CommandOne, CommandTwo, CommandThree, CommandFour);

procedure DoCommand(const Command: string);
begin
 case TCommand(GetEnumValue(TypeInfo(TCommand), Command)) of
   CommandOne: ..;
   CommandTwo: ..;
   ..
 end;
end;

--
Regards, LVT.


 
Digitman ©   (2005-11-01 13:19) [2]


> Может я не туда рою, а все намного проще?


так и есть)

uses ComObj, StdVcl, ActiveX, AxCtrls, TypInfo;

type
 TMyEnum = (eOne, eTwo, eThree, eFour, eFive);

function GetEnumVal(const EnumName: String): TMyEnum;
begin
 Result := TMyEnum(GetEnumValue(TypeInfo(TMyEnum), EnumName));
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
 showmessage(IntToStr(Integer(GetEnumVal("eTwo"))));
end;



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

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

Наверх




Память: 0.44 MB
Время: 0.049 c
2-1131193537
JBL
2005-11-05 15:25
2005.11.20
Rave Reports


2-1130806936
Живописец
2005-11-01 04:02
2005.11.20
Как нарисовать на Delphi дерево ?


2-1130933037
~SaM~
2005-11-02 15:03
2005.11.20
Как сделать так, что бы окно программы было поверх ВСЕХ окон?


14-1130254944
hi
2005-10-25 19:42
2005.11.20
Существует ли женский заговор?


14-1130239230
SergP.
2005-10-25 15:20
2005.11.20
Поиск совпадений цифр в списке чисел. Есть ли мысли?





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