Как получить EnumName(s)

Janex
Дата: 18.11.2019 21:48:25
Привет всем!

Вот код:
  for i := 0 to Integer(High(TAlignLayout)) do
    memo1.Lines.Add(GetEnumName(System.TypeInfo(TAlignLayout), i));


Всё работает, но мне надо всё ето получить если TAlignLayout не как в
примере, но он как String, типо mystring := 'TAlignLayout' и исходя из
етого получить етот список ...

Есть идеи ?

WBR
Janex
rgreat
Дата: 18.11.2019 21:50:40
Нихрена не понял.
asviridenkov
Дата: 18.11.2019 21:57:43
rgreat,

Он хочет получить информацию по типу не имея TypeInfo, только имя типа.
Нельзя.
Kazantsev Alexey
Дата: 18.11.2019 22:17:47
Чего нельзя то?
TRttiContext.Create.FindType('FMX.Types.TAlignLayout').Handle


uses system.rtti;
procedure TForm1.Button1Click(Sender: TObject);
var
 s:string;
 ss:string;
begin
 for s in TRttiEnumerationType(TRttiContext.Create.FindType('FMX.Types.TAlignLayout').AsOrdinal).GetNames do
  ss := ss + sLineBreak + s;
 showmessage(ss);
end;
asviridenkov
Дата: 18.11.2019 22:51:58
Kazantsev Alexey,

А, неправ, думал общего списка нет.
_Vasilisk_
Дата: 19.11.2019 15:18:05
Kazantsev Alexey,

Но все равно нужно указывать имя модуля?
TRttiContext.Create.FindType('TAlignLayout').Handle
Работать не будет?
Kazantsev Alexey
Дата: 19.11.2019 15:40:41
_Vasilisk_
Но все равно нужно указывать имя модуля?

Обязательно. Параметр называется QualifiedName.
_Vasilisk_
Дата: 19.11.2019 15:47:11
Kazantsev Alexey
Обязательно
Т.е. для исходной задачи
Janex
String, типо mystring := 'TAlignLayout'
работать не будет. Только если ТС не переформулирует задачу
Kazantsev Alexey
Дата: 19.11.2019 16:00:00
_Vasilisk_,

Если уж на то пошло, то ТС может написать собственный поиск, возможность перебрать все типы есть. Вот только, что делать с одноимёнными...