#delphi #ide #delphi_xe
В инспекторе объектов имеется поле, похожее на многострочное, которое тупо копирует название свойств при навигации, т.е. оно абсолютно бесполезно. Что ещё хуже, его даже нельзя скрыть! Хотелось бы в своём проекте показывать там краткое описание свойства, но я так и не нашёл никакой информации, как можно изменять то, что там отображается. Возможно ли это и если да, то как?
Ответы
Ответ 1
Обновление, про DescriptionPane: за работу с панелью DescriptionPane отвечает интерфейс IPropertyDescription, реализующий единственный метод: function GetDescription: string; Если включить в созданный редактор свойства реализацию этого интерфейса, то своё описание будет появляться в этой панели при выделении свойства. Пример, на основе того же VirtualTreeView: TCheckImageKindProperty = class(TEnumProperty,... IPropertyDescription) public ... function GetDescription: string; end; function TCheckImageKindProperty.GetDescription: string; begin Result:='TCheckImageKindProperty.GetDescription'; end; //==================== RegisterPropertyEditor(TypeInfo(TCheckImageKind), nil, '', TCheckImageKindProperty); Про панельку рядом с DescriptionPane - HotCommands: За работу с этой панелью (и за контекстное меню при клике по компоненту) отвечает TComponentEditor, а именно - его методы function GetVerb(Index: Integer): string; virtual; function GetVerbCount: Integer; virtual; procedure ExecuteVerb(Index: Integer); virtual; Перекрыв их в своем зарегистрированном редакторе для компонента можно не только показывать информацию, но и выполнять необходимые действия. Для примера я взял VirtualTreeView и изменил его редактор type TVirtualTreeEditor = class (TDefaultEditor) public procedure Edit; override; // этот метод был procedure ExecuteVerb(Index: Integer); override; // остальные - добавил function GetVerb(Index: Integer): string; override; function GetVerbCount: Integer; override; end; procedure TVirtualTreeEditor.ExecuteVerb(Index: Integer); begin inherited; ShowMessage('Verb '+IntToStr(Index)); end; function TVirtualTreeEditor.GetVerb(Index: Integer): string; begin if Index = 0 then Result:='VT action'; end; function TVirtualTreeEditor.GetVerbCount: Integer; begin Result:=1; end; И пересобрал дизайн-пакет компонента.Ответ 2
Это не поле, а панель - Status Bar, на которой выводится системная информация. В данном случае информация о свойстве. Незнаю есть такая возможность в ранних версиях или нет, но в более поздних версиях можно данную панель отключить, для этого нужно: Кликнуть правой кнопкой мыши на Status Bar (панель) или в окне Object Inspecto'а Выбрать пункт Properties (в результате откроется окно настроек Status Bar'a) Снять галочку с пункта Show status bar'a и нажать кнопку SaveОтвет 3
"Left" - нет (это вообще число и это поле активно используется по назначению - указывает смещение относительно родителя). Для краткого описания можно использовать Hint. При этом это поле может быть видимо конечному пользователю! Так же есть целочисленное свойство Tag, которое можно использовать по своему усмотрению. Обзор свойств компонент: http://www.delphi.int.ru/articles/106/ - возможно тут найдется что-то для тебя полезное.
Комментариев нет:
Отправить комментарий