Форум: "Начинающим";
Текущий архив: 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.042 c