Главная страница
    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.45 MB
Время: 0.04 c
14-1130356032
American
2005-10-26 23:47
2005.11.20
Какую версию предпочесть: 6, 7 или 2005


3-1128921953
Layner
2005-10-10 09:25
2005.11.20
Через ADO не работает SQL запрос в Access, из Access нормально..


14-1130737263
Ega23
2005-10-31 08:41
2005.11.20
С днем рождения! 31 октября


14-1130388039
Ega23
2005-10-27 08:40
2005.11.20
С днем рождения! 27 октября


1-1130405379
ВоваВова
2005-10-27 13:29
2005.11.20
Запуск .bat файла





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