|
|
|
|
Создание компонентов
»»»
Nuke Dukem (02.08.00 14:09) Вопросик совсем простой наверное. Как
свойство родительского класса (например) published OnChange:
TNotifyEvent; сделать в своей компоненте недоступной в Object
Inspector?? И вопрос посложнее. Есть TTreeView как родительский класс для
компонента. В конструкторе создаю pmenu типа TPopupMenu, owner у меню - мой
TreeView. Хочу добавить в Object Inspector что-то типа PopupMenuItems от
этого попапа. Простое property PopupMenuItems : TMenuItem read
GetItem; и function TMyTreeView.GetItem() :
TMenuItem; begin Result:=pmenu.Items; end; НЕ ПОМОГЛО. Как
быть, уважаемые ???
»»» Alexander - avolkov@infostroy.ru (02.08.00
15:16) 1) На мой взгляд нужно следующее. Объявить в наследнике public
свойство OnChange с соответствующими методами доступа, в которых брать или
устанавливать свойство родителя:
function TMyCtrl.GetOnChange:
Classes.TNotifyEvent; begin Result := inherited
OnChange end;
procedure TMyCtrl.SetOnChange(Value:
Classes.TNotifyEvent); begin inherited OnChange :=
Value end;
Public- свойство инспектор показывать не
будет.
2) По моим наблюдениям, инспектор показывает свойство, если
для него определен и read и write доступ. Как Вы будете реализовывать доступ
к элементам меню - Ваш выбор. Я бы попробовал просто давать доступ к
указателю на свойство pmenu.Items. Это коллекция, а с ними инспектор проблем
не имеет.
»»» Alexander - avolkov@infostroy.ru (02.08.00
15:43) Корректировка к предыдущему моему сообщение. Извините, коллекции
навязли в зубах. Конечно TMenuItem это не коллекция, но инспектор с ней
знаком. Поэтому проблема только в том, чтобы определить метод на запись
требуемого Вам свойства.
»»» Nuke Dukem - nukedukem@iname.ru
(02.08.00 15:50) По поводу TMenuItem. Я сглупил. Если у меня создается
это самое меню в конструкторе, то оно так и будет там создаваться. Даже если
в IDE что-то там насоздают типа подменюшек. В общем хотелось создать
попап меню с бызовым набором строк. А в IDE можно было бы
добавить/удалить/изменить. Как бы это сделать?
»»» Mike Goblin -
mgoblin@mail.ru (02.08.00 16:39) В Object Pascal уменьшить видимость
метода/св-ва низя, но как правило у каждого визуального ком-та есть родитель
TCustom...., где св-ва/события описаны как protected. Наследуйте от него и
делайте Published нужные. Про PopupMenu не очень понял, а чем Вас не
устраивает его св-во PopupMenu для задания внешнего TPopupMenu
-= Из
конференции сайта MASTERS OF DELPHI
(http://delphi.mastak.com) =-
Комментарий от Yavorsky
(yavorsky@fastiv.kiev.ua) Достаточно написать наследник данного
компонента, а свойство OnChange переместить в раздел public.
|
Copyright ©
"Мастера DELPHI" E-mail:
delphi@mastak.com
http://www.delphimaster.ru |
Источник получения информации: http://www.delphimaster.ru
|
|