powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Можно ли получить ссылку на класс используя атрибуты?
5 сообщений из 5, страница 1 из 1
Можно ли получить ссылку на класс используя атрибуты?
    #39821056
Arshehremen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Задумал коварное действие, но уже 3 или 4 часа сижу гуглю и не могу найти ответ.
Собственно "Можно ли получить ссылку на класс используя атрибуты?"
Например, для кода ниже хочу получить ссылки на TDog и TCat
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
     
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;



В конечном итоге хочу это использовать, чтобы генерить юниты - с классами объектов, в идеале ничего не добавляя в другие классы.
Сейчас в "главном модуле" это выглядит следующим образом:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
...
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;



при добавлении очередной собаки нужно добавлять модуль в юзесы и строчку в список. Хочу сделать инверсально.
...
Рейтинг: 0 / 0
Можно ли получить ссылку на класс используя атрибуты?
    #39821059
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arshehremenпри добавлении очередной собаки нужно добавлять модуль в юзесы и строчку в список. Хочу сделать инверсально.
Это делается куда проще.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
unit Dog;

interface

implementation

uses Animals;

type
  TDog = class(TAnimal)
  ...

initialization
  RegisterAnimal(TDog);

end.
...
Рейтинг: 0 / 0
Можно ли получить ссылку на класс используя атрибуты?
    #39821068
Arshehremen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer, вау, спасибо. не знал про такую фичу!

Но остаётся вопрос с добавлением нужного класса в список. Для этого я и хотел использовать атрибуты.
...
Рейтинг: 0 / 0
Можно ли получить ссылку на класс используя атрибуты?
    #39821069
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArshehremenНо остаётся вопрос с добавлением нужного класса в список.
RegisterAnimal решает этот вопрос.
...
Рейтинг: 0 / 0
Можно ли получить ссылку на класс используя атрибуты?
    #39821071
Arshehremen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer, точно, спасибо! Всё получилось! Сначала подумал, что функция в initialization нужна чтобы зарегистрировать класс.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Можно ли получить ссылку на класс используя атрибуты?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]