Блог Александра Божко
Архивы
Рубрики

RTTI

DUCK DUCK DELPHI – замечательный, на мой взгляд, проект, иллюстрирующий возможности RTTI в Delphi. Автор Jason Southwell.
Проект представляет собой модуль, реализующий duck typing.
Вместо
if obj is TControl then
TCoontrol(obj).Visible := True
вы можете написать
obj.duck.sett(‘Visible’,True);
Или так, если нужно установить видимость для всех объектов.
Self.duck.all.has(‘Visible’).sett(True);

Оригинал.

Этот пост основывается на коде модуля IniPersit.pas, недавно реализованного мною.
Обычно я делаю конфигурационные классы для создания общей и легкодоступной информации, хранящейся в INI, реестре или в XML. В данных примерах я покажу, как использовать RTTI и атрибуты в Delphi 2010, для того, что бы получить новый способ создания конфигурационного класса, имеющего доступ к информации, хранящейся в INI файле.
Давайте, прежде всего, посмотрим, как использовать Новый Модуль, а затем мы сможем приоткрыть завесу, что бы посмотреть, как это работает.

  Читать далее 

Данный пост не вошел в основной список статей Роберта Лава, посвященных использованию RTTI в Delphi 2010. Здесь просто приводятся ссылки на примеры, разработанные автором и даются некоторые пояснения к ним. Дальнейший рассказ об особенностях нового RTTI будет строится непосредственно на этих примерах.

(примечание переводчика)

Читать далее

Оригинал.

TValue является одним из ключевых типов в новой RTTI системе. Мы уже рассмотрели некоторые основы во Введении в TValue. Теперь наступило время немного вернуться назад для того, что бы  разобрать и исследовать как он был спроектирован, затем, что бы вы могли использовать всю мощь TValue.
Прежде чем мы зайдем слишком далеко, давайте взглянем на поле в интерфейсной части TValue.

Читать далее

Оригинал.

Сегодня я приоткрою завесу над TRttiMethod. Это основная причина того, почему мне нравится новый RTTI в Delphi 2010. В предыдущих версиях Delphi вызов динамических методов был темным искусством, и имел множество ограничений. Он был тяжелым и зависел от того, как скомпилирован ваш код. По умолчанию эта возможность была отключена для VCL классов. В предшествующих Delphi 2010 версиях вам требовалось слишком много знать о внутренней структуре метода {$METHODINFO}, для того, что бы вызвать метод динамически.

Читать далее

Оригинал

Я считаю, что нужно сделать перерыв между статьями, для того, что бы объяснить, почему я вызываю TRttiContext.Create() и TRttiContext.Free(), хотя фактически можно этого не делать.

Да, вам не обязательно это делать, хотя я это делаю… Почему?

Читать далее

Оригинал.

Некоторые типы, такие как классы и записи, содержат “элементы (members)”, такие как поля, свойства и методы. RTTI информация начинается с TRttiMember , который предоставляет 4 бита информации о каждом Элементе.

Читать далее

Оригинал.

TValue – новая структура – запись (record), определенная в RTTI.pas, она предоставляет возможность сохранять значение и информацию о типе для экземпляров любых типов. Это видно из приведенного ниже кода. Читать далее

TRttiType обеспечивает нас удобным интерфейсом, который позволяет получать доступ ко всей информации, связанной с типом. В большинстве случаев, как мне кажется, он интуитивно понятен и документирован. Я рекомендую открыть Rtti.pas и посмотреть описание TRttiType.
В общих чертах я рассказал про TRttiType в предыдущих статьях.
Подобно тому, что я начал рассказывать в предыдущей статье, если ваш тип поддерживает поля, свойства и/или методы, то существуют несколько несложных методов получения доступа к ним.
Такие методы предоставляют ко всем полям, свойствам и методам, имеющим  RTTI информацию, и в следующих статьях я углубленно рассмотрю TRttiField, TRttiProperty и TRttiMethod.

Читать далее

Перевод второй статьи из цикла о RTTI в Delphi 2010.

В Delphi 2010 атрибуты были добавлены как функциональность языка. Они были доступны в Delphi Prism (для .Net) и вот теперь схожая функциональность появилась и для Win32.
Атрибуты являются способом закрепления метаданных за отдельно взятым типом или членом этого типа.
Они могут применяться во многих областях, и следующий код демонстрирует несколько вариантов использования атрибутов.

Читать далее

Продукты DevArt
Купить онлайн:



Читай русскоязычные Delphi блоги
Каталог блогов Blogdir.ru
Яндекс.Метрика