Всем привет!
Задумал коварное действие, но уже 3 или 4 часа сижу гуглю и не могу найти ответ.
Собственно "Можно ли получить ссылку на класс используя атрибуты?"
Например, для кода ниже хочу получить ссылки на TDog и TCat
TSAttribute = class(TCustomAttribute)
private
FName: string;
public
constructor Create(const Name : string);
property Name : string read FName write FName;
end;
TSomething = class
end;
[TS('Dog')]
TDog = class(TSomething)
end;
[TS('Cat')]
TCat = class(TSomething)
end;
В конечном итоге хочу это использовать, чтобы генерить юниты - с классами объектов, в идеале ничего не добавляя в другие классы.
Сейчас в "главном модуле" это выглядит следующим образом:
...
var DogID, CatID:integer;
implementation
uses DogUnit,CatUnit;
constructor TMain.Create();
begin
inherited;
objectTypes := TTypesList.Create ;//TTypesList это TList
objectTypes.Add(TDog); DogID:=objectTypes.Count-1; {0}
objectTypes.Add(TCat); CatID :=objectTypes.Count-1; {1}
end;
при добавлении очередной собаки нужно добавлять модуль в юзесы и строчку в список. Хочу сделать инверсально.