Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Имя класса компонента и модуля

Delphi , Компоненты и Классы , Модули

Имя класса компонента и модуля

Мне необходима функция, которая возвращала бы имя класса компонента и имя модуля, где определен данный класс.

Например: xxx('TPanel') возвращала бы 'ExtCtrls'

Также мне необходима функция, возвращающая список имен страниц палитры компонентов.


Uses TypInfo;

Function ObjectsUnit (Obj: TClass): String; 
Begin
  Result := GetTypeData (PTypeInfo(Obj.ClassInfo))^.UnitName
end;

Для создания описанной вами функции "Какой модуль" могут использоваться описанные в TOOLINTF.INT методы GetModuleCount, GetModuleName, GetComponentCount и GetComponentName.

Для получения представления о формате палитры компонентов обратитесь к файлу DELPHI.INI.

Here is the translation of the text into Russian:

Функция для получения имени класса и модуля

Uses TypInfo;

Function GetClassNameAndModuleName(Obj: TClass): String;
Begin
   // Используем функцию GetTypeData из единицы TypInfo, чтобы получить информацию о типе объекта
  Result := GetTypeData(PTypeInfo(Obj.ClassInfo))^.UnitName;  // возвращает имя модуля
End;

Эта функция использует функцию GetTypeData из единицы TypInfo, чтобы получить информацию о типе объекта. Нужен каст PTypeInfo для преобразования объекта TClass в указатель на PTypeInfo, который можно использовать с функцией GetTypeData.

Альтернативное решение с использованием методов TOOLINTF.INF

Если вы хотите использовать методы TOOLINTF.INF для получения имени модуля, вы можете использовать следующий код:

Uses ToolIntf;

Function GetClassNameAndModuleName(Obj: TClass): String;
Var
  I: Integer;
Begin
   // Получаем количество модулей из TOOLINTF.INF
  for I := 0 to GetModuleCount - 1 do
    if GetComponentName(I) = Obj.ClassName then
      Result := GetModuleName(I);
End;

Этот код использует методы GetModuleCount и GetComponentName из единицы ToolIntf для перебора всех модулей и компонентов, и возвращает имя модуля компонента, который соответствует заданному имени класса.

Функция для получения списка имен страниц в палетке компонентов

Чтобы получить список имен страниц в палетке компонентов, вы можете использовать следующий код:

Uses ToolIntf;

Function GetComponentPalettePages: TStringList;
Var
  I: Integer;
Begin
  Result := TStringList.Create;
  for I := 0 to GetPageCount - 1 do
    Result.Add(GetPageName(I));
End;

Эта функция использует методы GetPageCount и GetPageName из единицы ToolIntf для перебора всех страниц в палетке компонентов, и возвращает список имен страниц.

Обратите внимание, что эти функции являются специфичными для Delphi и могут не работать с другими средами разработки.

Функция, которая возвращает имя класса компонента и модуля, определенного в указанном классе, может быть реализована с помощью методов GetModuleCount, GetModuleName, GetComponentCount и GetComponentName из TOOLINTF.INT, а также GetTypeData из TypInfo.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



:: Главная :: Модули ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-20 00:38:00/0.0044469833374023/2