Вопросы по теме 'rtti'

RTTI на объектах в Delphi
Я пытаюсь преобразовать объекты в XML в Delphi, поэтому я читал о вызове метода ClassInfo объекта для получения его информации RTTI. Дело в том, что это, по-видимому, работает только для объектов TPersistent. В противном случае я должен специально...
2870 просмотров
schedule 04.08.2023

Дублирование компонентов во время выполнения
Есть ли простой способ дублировать все дочерние компоненты родительского компонента, включая их опубликованные свойства? Например: TPanel TLabel TEdit TListView TSpecialClassX Конечно, наиболее важным фактором является то,...
15356 просмотров
schedule 24.07.2023

Проблема с Delphi RTTI: GetPropInfo возвращает ноль с {$ METHODINFO ON}?
Есть ли вероятность, что GetPropInfo вернет ноль, даже если данный класс объявлен с правильными директивами {$ METHODINFO}. type ... ... {$METHODINFO ON} TMyClass = class private fField: integer; published...
3291 просмотров
schedule 09.12.2022

Как связать иерархию параллельных классов?
У меня есть небольшая иерархия классов, в которой каждый класс соответствует определенному потомку TComponent (скажем, базовый класс TDefaultFrobber с потомками TActionFrobber и TMenuItemFrobber, соответствующими TComponent, TCustomAction и TMenuItem...
664 просмотров
schedule 20.03.2023

Когда и почему генерируется исключение std::__non_rtti_object?
Я использую Visual Studio и выполняю действительное динамическое приведение. RTTI включен. Изменить: обновлен код, чтобы сделать его более реалистичным. struct base { virtual base* Clone() { base* ptr = new base;...
11652 просмотров
schedule 25.02.2023

Как лучше всего сериализовать конфигурацию приложения Delphi?
Я сам отвечу на этот вопрос, но не стесняйтесь давать свои ответы, если вы быстрее меня или вам не нравится мое решение. Мне только что пришла в голову эта идея, и я хотел бы высказать свое мнение по этому поводу. Цель: класс конфигурации,...
4211 просмотров
schedule 22.06.2022

TPersistent + интерфейс, Delphi
Мне нужен класс, основанный на TPersistent (поэтому он хранит RTTI) и включает обработку интерфейсов по умолчанию (QueryInterface, _AddRef, _Release)... какое имя класса я ищу?
1488 просмотров
schedule 23.04.2024

RTTI: Могу ли я получить тип по имени?
Имея текстовую строку, содержащую имя типа, есть ли способ получить соответствующий тип? Я хочу сделать что-то вроде этого: type TSomeType<T> = class // yadda yadda end; procedure DoSomething; var obj : TObject; begin o :=...
3684 просмотров
schedule 06.12.2022

Проблемы с воспроизведением индексированных свойств через новый RTTI [D2010]
ShowMessage(TRttiContext.Create.GetType(TStringList) .GetProperty('Strings').ToString); Приведенный выше код не работает, поскольку .GetProperty возвращает ноль для таких свойств, как «Строки», «Объекты», «Значения» (с индексаторами). Я...
256 просмотров
schedule 05.04.2023

Создание нового объекта из информации о динамическом типе
Есть ли в C ++ способ запросить тип объекта и затем использовать эту информацию для динамического создания нового объекта того же типа? Например, скажем, у меня есть простая иерархия из трех классов: class Base class Foo : public Base class Bar...
17583 просмотров
schedule 02.10.2022

Как установить обработчики событий произвольного типа с RTTI в Delphi 2010?
после прочтения сообщения Как настроить обработчики событий через новый RTTI? , интересно, можно ли решить эту проблему более динамично. Например, я хочу установить для ВСЕХ обработчиков событий любого компонента значение nil. Использование...
1720 просмотров
schedule 20.05.2022

Как установить NULL в поле Variant с помощью rtti
У меня проблема с установкой нулевого значения в поле варианта с помощью rtti. Предположим, у меня есть такой класс: TClass1 = class Field1:Integer; Field2:Variant; end; когда я получаю доступ к Field1, я могу сделать следующее:...
2588 просмотров
schedule 03.01.2024

Перечислить все классы Delphi, реализующие данный интерфейс?
С новым расширенным RTTI в Delphi 2010 может ли приложение Delphi (во время выполнения) создать список всех классов, реализующих данный интерфейс?
1506 просмотров
schedule 25.08.2022

Почему для динамического приведения от класса к подклассу требуется, чтобы класс был полиморфным?
Насколько я понимаю, то, что отличает динамическое приведение от статического, - это использование RTTI и тот факт, что он не работает, если динамический тип переменной - при приведении от базового к производному - не подходит. Но почему для этого...
3162 просмотров
schedule 23.03.2022

Delphi - RTTI информация о методах в записях
как извлечь информацию RTTI о методах в записях Delphi? возможно ли это при использовании нового блока Rtti?
1024 просмотров
schedule 30.07.2022

Использование файла Visual Studio .ncb для отражения
Разрабатываю визуальный редактор игровых уровней на C ++. Для этого я хочу, чтобы механизм отражения (RTTI) знал атрибуты класса во время выполнения. В настоящее время я использую для этого файлы PDB, но с помощью PDB я не смог получить фактическую...
335 просмотров
schedule 02.06.2023

Необходимо знать о хорошем C++ Reflection API (для идентификации RuntimeType -RTTI и вызовов во время выполнения)
Мне нужен хороший C++ Reflection API (например, Microsoft API), который позволяет мне определять типы (class, struct, enum, int, float, double и т. д.), идентифицированные во время выполнения, объявлять их и вызывать методы для этих типов во время...
776 просмотров
schedule 16.04.2022

Delphi RTTI не может найти интерфейс
Я пытаюсь получить интерфейс, используя D2010 RTTI. program rtti_sb_1; {$APPTYPE CONSOLE} {$M+} uses SysUtils, Rtti, mynamespace in 'mynamespace.pas'; var ctx: TRttiContext; RType: TRttiType; MyClass: TMyIntfClass; begin ctx...
2165 просмотров
schedule 31.05.2022

Delphi TRttiType.GetMethods возвращает ноль экземпляров TRttiMethod
Недавно мне удалось получить TRttiType для интерфейса с помощью TRttiContext.FindType с помощью Robert Loves «GetType» — обходной путь («регистрация» интерфейса явным вызовом ctx.GetType, например, RType :=...
834 просмотров
schedule 21.03.2024

Delphi 2010 RTTI - RttiContext.FindType
С RttiContext.FindType('Classes.TStringList') я без проблем получаю RttiType of TStringList. Но с RttiContext.FindType('MyUnit.TMyClass') я всегда получаю nil (конечно, MyUnit находится в разделе uses). Почему, что не так? Пример: unit...
2438 просмотров
schedule 25.04.2022