Вопросы по теме '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