Створення редактора властивостей - студопедія

Редагувати властивості у вікні Інспектора Об'єктів можна двома способами. Один полягає в наданні користувачу можливості редагування властивості як рядки тексту. Інший вимагає створення спеціального діалогового вікна, в якому і виконується редагування властивості. У деяких випадках потрібно використовувати обидва способи для редагування одного властивості.

2. Редагування властивості як тексту.

3. Редагування властивості в діалоговому вікні (необов'язковий етап).

function GetAttributes: TPropertyAttributes; override;

function GetValue. String; override;

procedure Edit; override;

Розглянемо по порядку методи нового класу.

Функція GetAttributes додає до успадкованого безлічі атрибути paDialog (з'являється кнопка «...») і paReadOnly (властивість не можна редагувати безпосередньо в інспектор об'єктів, а тільки в діалозі, що викликається через кнопку «...»):

function THintProperty.GetAttributes: TPropertyAttributes;

Result: = inherited GetAttributes + [paDialog, paReadOnly];

Функція GetValue замінює "неправильні" символи # 10 і # 13 (переклад каретки і перехід на новий рядок) на символ ">":

function THintProperty.GetValue. string;

for i: = 1 to Byte (result [0]) do

if result [i]<#32 then result[i]:='>';

Процедура Edit викликає діалог для введення рядків підказки. Діалог можна було б намалювати свій власний, однак можна скористатися вже готовим. Кілька різних діалогів лежить в директорії X: \ DELPHI \ SOURCE \ LIB. Скористаємося модулем STREDIT.PAS, в якому є необхідний діалог редагування рядків:

with HintEditDlg do

Схожі статті