Главная страница
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.048 c
2-1130834044
Got
2005-11-01 11:34
2005.11.20
Как передать в функцию перечесляемый тип?


2-1130585016
Erl
2005-10-29 15:23
2005.11.20
MDI


2-1130694384
JBL
2005-10-30 20:46
2005.11.20
dbGrid


2-1130848978
Monah
2005-11-01 15:42
2005.11.20
Разрешение экрана и форма


2-1131120978
Сафаров
2005-11-04 19:16
2005.11.20
Базы