Статьи
|
Обычно подсказка - только в одну строку - потому что инспектор объектов не принимает #13 - решение состоит в том, чтобы определить редактор свойства с диалогом, используя Memo.
Сначала Вы должны определить класс для редактора свойства:
THintPropertyEditor = class(TPropertyEditor)
private
{ Private }
protected
{ Protected }
public
{ Public }
function GetAttributes: TPropertyAttributes; override;
procedure Edit; override;
function GetValue(Value : String); override;
published
{ Published }
end;
{ the implementations
для getattributes: }
result := [paDialog];
{ для Edit: }
// Hintform включает Memo1 и
// кнопку OK с ModalResult = mrOK и
// кнопку Cancel с ModalResult = mrCancel
HintForm := THintform.Create(nil);
if Hintform.Showmodal = mrOK then
TControl(GetComponent(0)).Hint := HintForm.Memo1.Lines;
HintForm.Free;
{ для GetValue: }
result := TControl(GetComponent(0)).Hint;
{ регистрация редактора свойств }
procedure Register;
begin
// Тип Hint = string
// nil для ВСЕХ компонентов
// HINT должна быть в верхнем регистре, т.к. в Delphi нет
// casesensitive
// THintPropertyEditor класс редактора свойств
RegisterPropertyEditor(TypeInfo(string), nil, 'HINT',
THintPropertyEditor);
end;
По материалам http://delphi.3000.com
|