Карта сайтаСсылкиКонтакты

Разработка TPropertyEditor для многострочной подсказки

PDF Печать
Статьи

Обычно подсказка - только в одну строку - потому что инспектор объектов не принимает #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


 

Добавить комментарий


Защитный код
Обновить