Прежде всего, поскольку я использую VB6, пожалуйста, ограничивайте свои добрые предложения техникой, применяемой к VB6.Как повторно использовать приложение VB6?
У меня есть набор элементов управления, связанных друг с другом, как показано на рисунке выше. Он включает в себя несколько древовидных представлений, разделительную панель, список, подчиненную форму (usercontrol) и т. Д.
Когда я нажимаю или изменяю узлы древовидной структуры слева, правые элементы управления соответственно меняют направление сортировки, и наоборот ,
Данные за сценой хранятся в базе данных Access.
Этот набор функций управления и отображения данных используется в нескольких различных приложениях. Поэтому я написал несколько классов для реализации логики и снова включил эти классы модулей в свои приложения.
Так что я на самом деле REUSE Мои классы в режиме "копировать и вставлять". Он работает, но у него есть проблемы. Если я внес изменения в класс, я должен изменить его в severl applicaitons.
В эти дни я думаю о том, чтобы превратить их в так называемые компоненты ActiveX. Но я не уверен, какие компоненты ActiveX следует разработать для повторного использования всей архитекции.
Вкратце, я хочу знать как можно использовать его более изящно, чем просто «скопировать и вставить». Ниже приведены некоторые идеи или ожидания нового «изящного ВОЗВРАТА», но не ограничиваются ими.
(1) Я надеюсь, что это похоже на элемент управления ActiveX, который имеет страницу свойств, чтобы я мог установить некоторые свойства этого объекта во время разработки.
(2) Для различных приложений подформация справа может отображать различную информацию и имеет различные элементы управления и может потребоваться кодирование и проектирование.
(3) Также мне может потребоваться ввести новое поведение для treeview и listview для разных приложений. Это требование делает весь пользовательский контроль для всей формы не подходящим. потому что MSDN сказал, что «Ссылки на элементы управления ActiveX никогда не должны возвращаться в клиентские приложения».
Звучит «изящно», спасибо. Поскольку я не совсем знаком с DLL ActiveX и концепцией интерфейса. Не могли бы вы дать дополнительные пояснения? ShapeScreen - это класс в dll, и он имеет интерфейс IShapeForm. И где классы формы? Они тоже в вашей DLL? Короче говоря, я просто не могу понять, как «реализовать интерфейс в форме»? Это имеет какое-либо отношение к полиморфизму? – SlowGrace
Не могли бы вы дать мне несколько строк кода, чтобы проиллюстрировать всю архитектуру? – SlowGrace
Или вы имеете в виду, что в вашей DLL есть класс IShapeForm? Все классы в вашей DLL будут взаимодействовать с IShapeForm, когда им это понадобится с реальной формой. И когда я использую dll, я зарегистрирую реальную форму в классе IShapeForm. Да, я думаю, это ваш смысл. – SlowGrace