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

Вниз

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

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

Наверх




Память: 0.47 MB
Время: 0.045 c
3-1129040707
AlexLines
2005-10-11 18:25
2005.11.20
поиск и маркировка поисковых фраз


2-1130782936
Dudee
2005-10-31 21:22
2005.11.20
TChart


14-1130749014
Который Барлог
2005-10-31 11:56
2005.11.20
Вирус? :)


14-1130356032
American
2005-10-26 23:47
2005.11.20
Какую версию предпочесть: 6, 7 или 2005


6-1123011535
Михаил(Киров)
2005-08-02 23:38
2005.11.20
Socketы