Недавно писал, как здорово было бы, если бы в Delphi были определены интерфейсы для базовых классов. Например, если бы все контролы, имеющие свойство Caption(например TLabel; TButton; TCheckBox; TRadioButton; TGroupBox; TBitBtn; TSpeedButton), реализовывали интерфейс ICaptionedControl с методом GetCaption. Подробнее читайте здесь.
Я просто мечтал, а Алексей Казанцев взял и показал, что подобное можно реализовать уже сейчас, и даже выложил у себя в блоге пример, показывающий, как добавить поддержку интерфейса ICaptionedControl для классов TControl и TPanel. Реализация сделана с помощью хука на метод TObject.GetInterface и представляет собой практически готовое решение. =)))
p.s. я до сих пор не могу поверить своим глазам. =) Это же действительно работает! O_o
p.p.s. Даже код читать – одно удовольствие.
Версия для мобильного

7 человек заметили этот пост: