Показать сообщение отдельно
  #1  
Старый 27.02.2018, 12:39
igor74 igor74 вне форума
Прохожий
 
Регистрация: 08.06.2011
Адрес: Екатеринбург
Сообщения: 11
Версия Delphi: Delphi 2010
Репутация: -625
По умолчанию Как передать перечисляемый тип в процедуру

Добрый день, знатоки.

Вопрос простой, но решения нет. Как передать перечисляемый тип в процедуры, например для определения текстового написания значения.

Пример:

Код:
uses ..., TypInfo;

type
  TmyBred = (mbNone, mbHelp, mbNoReplay);

function GetStringEnum(P : TypInfo; Index : integer) : string;
begin
  Result := GetEnumName(P, Index); // возвращает текстовое написание
end;

function GetStrEnum(myBred : TmyBred) : string;
begin
   Result := GetStringEnum(TypInfo(TmyBred)), Ord(myBred) );
end;

-----------------

а хочется так:

function GetStringEnum(P : "тут что написать?"; Index : integer) : string;
begin
  Result := GetEnumName(TypInfo( P ), Index); // возвращает текстовое написание
end;

function GetStrEnum(myBred : TmyBred) : string;
begin
   Result := GetStringEnum(TmyBred, Ord(myBred) );
end;

т.е. надо какой то тип указать. Какой?

P.S. Код для примера. Сильно не пинайте. И не спрашивайте зачем? Не флудите, плз. Реально нужно.
Ответить с цитированием