Привет всем.
Подскажите, пожалуйста, каким образом можно пометить компонент, что его не
нужно класть на Toolbox. Есть подозрение, что это каким-то образом делается
через атрибуты.
Поиск по статьям ничего не дал. Вроде бы, нечто общее есть с атрибутом
EditorBrowsable, но компилятор в упор его не хочет принимать в ассоциации с
классом.
Компилятор — Delphi 8 (хотя это не должно иметь значение).
Иннокентий
13.05.04 12:20: Перенесено модератором из '.NET' — TK
Здравствуйте, mikа, Вы писали:
M>ToolboxItem
Спасибо, направление похоже на правильное
Порывшись в MSDN на этот счёт, пришёл к таким выводам: чтобы сообщить IDE, что компонент не нужно класть на Toolbox, нужно создать класс, унаследованный от ToolboxItem и перекрыть у него определенным образом методы CreateComponentsCore, Serialize и Deserialize. После чего этот класс прописать в атрибуте ToolboxItem компонента.
Вот только не совсем понятно, как именно нужно перекрывать эти методы. Похоже, тут нужно как-то задействовать свойство ToolboxItem.Filter? Но установка его в Prevent ничего не даёт, компонент по-прежнему показывается на Toolbox'e.
Прошу сильно не пинать, если вопросы чайниковские.
Иннокентий
Для этих целей можно использовать ToolBoxItemAttribute И ToolboxItem.
Что бы твой класс нельзя было видеть в списке .NET компонент при добавлении в елементов в ToolBox,
достаточно над твоим компонентом прописать
[ToolBoxItem(false)]
public class MyButton : Control
{
...
}
А вот класс ToolboxItem и аттрибут ToolBoxItemAttribute используются при более сложной логике создания компонента.
Пример их использования можно увидеть при создании SqlDataAdapter, он вызывает мастер по настройке, и кроме себя создает еще и другие компоненты
SqlConnection и кучу SqlCommand.
... << RSDN@Home 1.1.3 stable Ночные Снайперы — Питерская>> <no any citation>
Здравствуйте, V.Petrovski, Вы писали:
VP>Для этих целей можно использовать ToolBoxItemAttribute И ToolboxItem.
VP>[ToolBoxItem(false)]
VP>public class MyButton : Control
Спасибо! То, что нужно!
Всё оказалось более чем просто
Иннокентий
Здравствуйте, V.Petrovski, Вы писали:
VP>Для этих целей можно использовать ToolBoxItemAttribute И ToolboxItem.
VP>Что бы твой класс нельзя было видеть в списке .NET компонент при добавлении в елементов в ToolBox,
VP>достаточно над твоим компонентом прописать
VP>VP>[ToolBoxItem(false)]
VP>public class MyButton : Control
VP>{
VP>...
VP>}
VP>
VP>А вот класс ToolboxItem и аттрибут ToolBoxItemAttribute используются при более сложной логике создания компонента.
VP>Пример их использования можно увидеть при создании SqlDataAdapter, он вызывает мастер по настройке, и кроме себя создает еще и другие компоненты
VP>SqlConnection и кучу SqlCommand.
Идея такая: из базы данных в TreeView закидываются имена Таблиц и соответсвенно Имена полей. Все ноды представляются Toolbox'ами. Делать стендартно — работает. Пытаюсь создать свой ToolBox, который бы по созданию контрола на форме (пробовал по разному) проставлял соответсвующее свойство контрола — в моем случае — DataBindings.
Не подскажете, в какую сторону копать.
С великой надеждой, Андрей