Создание расширений для приложения (Plugins)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Создание расширений для приложения (Plugins)

Сообщение Dmitriy2003 » 10.09.2006 (Вс) 21:44

проект реализующий расширения приложения или (Plugins)
собственно вопрос такой насколько приемлема эта методика.

Самое важное что основное приложение не может постоянно обновлятся
поэтому дополнительная функциональность должна достигатся за счет расширений.
я вот попробовал такой вариант, но я то программист не настоящий вот и хотелось бы
авторитетные мнения узнать.

Ну я буду рад любым замечаниям поскольку наверняка есть и другие
решения о которых мне вполне вероятно ничего неизвестно

Сам проект не предстовляет никакой ценности все в нем относительно
кроме структуры.

перед запуском необходимо зарегестрировать *.dll (для бинарника)
и дополнить реест ключами *.reg (в любом случае)
Вложения
Plugins_sample.rar
здесь какая никая практика а в поиске я нашел только теоретические и очень размытые замечания
(37.68 Кб) Скачиваний: 50
Dmitrich

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Сообщение Dmitriy2003 » 11.09.2006 (Пн) 15:50

:D Привет!

Каюсь я каюсь, я понял что разрешать компоненту сасому себя инициализировать не есть хорошо :evil:

Как следствие пришлось добавить новый интерфейс IPluginInfo.
Вот нарушаю потихоньку правила создани обьектов в СОМ

В целом мне кажется пока не написано само приложение трудновато реализовать для него расширения, поскольку елементы типа TextBox, Toolbar, Menu не передать внешним процедурам, необходимо написать обьектную модель приложения, а как это сделать если еще нет самого приложения :?:

Я бы с удовольствие каждый раз новый код выкладывал, да боюсь не поймут господа модераторы. :)
Dmitrich

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 12.09.2006 (Вт) 5:05

Dmitriy2003 писал(а):... поскольку елементы типа TextBox, Toolbar, Menu не передать внешним процедурам...
Точно?
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Сообщение Dmitriy2003 » 12.09.2006 (Вт) 10:27

Ну попробуй добавить в IPlugin такое свойство :D

Public property Get Parent() as Form
end property

Public property Let Parent (fNew as Form)
end property

увы такое чудо не прокатит, короче я это имел ввиду а написал другое. :evil:
Dmitrich

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 12.09.2006 (Вт) 11:05

Еще бы прокатило... Во-первых не as Form, а As Object, а во-вторых не property Let Parent, а Property Set Parent. Попробуй еще раз :wink:
Лучший способ понять что-то самому — объяснить это другому.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 12.09.2006 (Вт) 11:41

Antonariy писал(а):Во-первых не as Form, а As Object

А это ещё почему?
Изображение

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 12.09.2006 (Вт) 12:14

На всякий случай. :) Конечно, можно и Form и Menu.
Лучший способ понять что-то самому — объяснить это другому.

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Сообщение Dmitriy2003 » 12.09.2006 (Вт) 17:08

На всякий случай. Конечно, можно и Form и Menu.


Ну что за люди! фу как некрасиво нет что-б примерчик подкинуть.


а это что вообще а ... :D

Fehler beim Kompillieren:

Private Objektmodule dürfen in öffentlichen Objektmodulen nicht als Parameter oder
Rückgabetypen für öffentliche Prozeduren, als öffentliche Datemmitglider, oder
als Felder öffentlicher, benutzerdefenierter Typen verwendet werden.


кто не в ладах с немецким перевожу (фиг вам) :D
Dmitrich

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 12.09.2006 (Вт) 18:53

Compile error:

Private object modules cannot be used in public object modules as parameters or return types for public procedures, as public data members, or as fields of public user defined types.

И что здесь вызывает непонимание?
Изображение

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Сообщение Dmitriy2003 » 12.09.2006 (Вт) 19:05

tyomitch писал(а):

И что здесь вызывает непонимание?


как тов. Antonariy собирается делать следующее

На всякий случай. :D Конечно, можно и Form и Menu.


зачем сбиватьс толку тех кому не совсем все ясно. :!:
Dmitrich

-=TsA=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 21.09.2004 (Вт) 14:32
Откуда: Татарстан, Заинск

Сообщение -=TsA=- » 15.09.2006 (Пт) 10:10

Dmitriy2003 писал(а):Ну что за люди! фу как некрасиво нет что-б примерчик подкинуть.


На лови...
Вложения
Sample Plugins.zip
Пример взаимодействия объектов из Plugin и из основного приложения.
(14.56 Кб) Скачиваний: 34

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Сообщение Dmitriy2003 » 15.09.2006 (Пт) 10:40

энтузиаст да.. :D

Ты хоть проект скачивал а :?:
так просыпаемся, просыпаемся :!: :shock:
Dmitrich

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Сообщение Dmitriy2003 » 15.09.2006 (Пт) 11:02

Модераторы закройте эту тему. :D

Кто найдет способ как разместить во внешней билбиотеке в интерфейсном классе в открытой процедуре, методе или свойстве, праметр конкретного типа (Menu, Textbox, Form и.т.п) или массив обектов конкретного типа или пользовательский тип или массив пользовательского типа, может создать свою тему!
Dmitrich

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 15.09.2006 (Пт) 11:56

Никак!
Только as Object или Variant.
Лучший способ понять что-то самому — объяснить это другому.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 15.09.2006 (Пт) 12:28

Antonariy
В таком случае смысл этого комментария для меня теряется. Опять за старое? :wink:
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 15.09.2006 (Пт) 13:00

Просто Темыч почему-то сказал "Ша!", я на автомате сделал "Ку", задавленный авторитетом. :) А щас перепроверил :)
Как говорится, доверяй, но проверяй.
Лучший способ понять что-то самому — объяснить это другому.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.09.2006 (Пт) 16:37

А я не говорил, что можно. Я только спросил, почему нельзя.
До сих пор не пойму, кстати :-)
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.09.2006 (Пт) 16:46

Видимо потому, что Form, Menu и прочее -- это приватные классы VB, о которых снаружи не известно.
Lasciate ogni speranza, voi ch'entrate.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 15.09.2006 (Пт) 16:49

Почему спросил или почему нельзя? :D
Нельзя наверное потому, что Form, Menu и иже с ними являются внутренними классами вб и никак не ActiveX.
Лучший способ понять что-то самому — объяснить это другому.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.09.2006 (Пт) 16:51

Antonariy писал(а):Почему спросил или почему нельзя? :D
Нельзя наверное потому, что Form, Menu и иже с ними являются внутренними классами вб и никак не ActiveX.

Раз кастуются к Object, значит полноценные ActiveX.
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 136

    TopList