Как программист Delphi, если вы хотите еще больше повысить свой уровень программирования, вы должны научиться писать элементы управления. В этой статье на простом примере будут представлены некоторые основные методы и шаблоны написания элементов управления для начинающих.
Этот пример элемента управления называется TLeiLabel, и он добавляет две практические функции на основе TLabel: одна — придать тексту трехмерную форму, а другая — придать тексту атрибут гиперссылки. Давайте реализуем эти функции шаг за шагом.
1. Придайте тексту объемную форму
Сначала определите тип T3DEffect и атрибут Style3D следующим образом:
T3DEffect=(Нормальный, Повышенный, Пониженный, Затененный);
PROperty Style3D:T3DEffect чтение FStyle3D запись SetStyle3D по умолчанию Нормальный;
Затем определите переменную в частном порядке: «FStyle3D:T3DEffect;» и установите метод SetStyle3D() следующим образом. Это также общий формат для написания методов:
процедура TLeiLabel.SetStyle3D(значение: T3DEffect);
начинать
если значение FStyle3D <>, то
начинать
FStyle3D := значение;
инвалидировать; //Указывает, что элемент управления будет перерисован
конец;
конец;
Кроме того, для текста с тенями необходимо определить смещения тени ShadeXOffSet и ShadeYOffSet:
свойство ShadowXOffSet: чтение целого числа FXOffSet запись SetFXOffSet по умолчанию 5;
свойство ShadowYOffSet: целое число чтение FYOffSet запись SetFYOffSet по умолчанию -5;
Методы записи SetFXOffSet() и SetFYOffSet() аналогичны описанному выше SetStyle3D().
Чтобы перерисовать элемент управления, обычно нужно перегрузить метод Paint. Здесь мы просто перерисовываем текст. Нам нужно только перегрузить метод DoDrawText.
Объявление DoDrawText помещается в Защищено:
процедура DoDrawText (var Rect: TRect; Флаги: Longint);
Здесь DoDrawText() рисует различный текст четырех типов (обычный, выпуклый, утопленный и теневой).
2. Добавьте в текст атрибуты гиперссылки.
Определите URL-адрес атрибута, который будет представлять URL-адрес или адрес электронной почты, на который будет осуществляться ссылка.
URL-адрес свойства: чтение строки FURL, запись SetURL;
Напишите метод SetURL следующим образом:
процедура TLeiLabel.SetURL(Значение: Строка);
Начинать
если FURL <> Значение, то FURL := Значение ;
если FURL <> ', то
Курсор := crHandPoint;
конец;
При нажатии на эту метку вам необходимо открыть браузер или инструмент отправки и получения почты, что требует перегрузки метода Click.
Процедура Нажмите кнопку «Переопределить»;
процедура TLeiLabel.Click;