|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как передать перечисляемый тип в процедуру
Добрый день, знатоки.
Вопрос простой, но решения нет. Как передать перечисляемый тип в процедуры, например для определения текстового написания значения. Пример: Код:
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. Код для примера. Сильно не пинайте. И не спрашивайте зачем? Не флудите, плз. Реально нужно. |
#2
|
||||
|
||||
Код:
uses TypInfo; type TmyBred = (mbNone, mbHelp, mbNoReplay); type TmyBred1 = (mbNone1, mbHelp1, mbNoReplay1); function GetStringEnum(p: ShortString; Index: integer) : string; var pt: PTypeInfo; begin if p = 'TmyBred' then pt:= TypeInfo(TmyBred); if p = 'TmyBred1' then pt:= TypeInfo(TmyBred1); Result := GetEnumName(pt, Index); end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
||||
|
||||
Не совсем понятно зачем дополнительные процедуры вводить. Что мешает использовать TypeInfo() и GetEnumName() по прямому назначению как есть?
Ну а вообще есть ответ на Ваш прямой вопрос. Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. Последний раз редактировалось dr. F.I.N., 28.02.2018 в 15:58. |
#4
|
|||
|
|||
То что написано по ссылке я так знал, но где то в глубине души надеялся а вдруг решение есть. Ну нет, так нет, PTypeInto никто не отменял.
Всем спасибо. Тема закрыта. |
#5
|
||||
|
||||
Цитата:
Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. |