И снова динамика :)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Snussi
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 151
Зарегистрирован: 21.07.2004 (Ср) 18:08
Откуда: Москва, Россия

И снова динамика :)

Сообщение Snussi » 08.12.2004 (Ср) 11:16

Прошерстил форум, ответа не нашел :)

Итак, в папке приложения имеется подпапка, скажем, CONTROLS, а в ней - несколько файлов ActiveX control - 1.ocx, 2.ocx и тд.

У каждого ocx есть, например, один метод - DisplayMsg.

Вопрос в следующем: на момент компиляции основного приложения не известно содержание папки Controls - известно лишь, что там может быть несколько контролов с одинаковым набором свойств, методов и событий.

Как, прочитав содержимое папки, подобавлять все объекты при запуске проекта на форму?[/b]

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Re: И снова динамика :)

Сообщение Ennor » 08.12.2004 (Ср) 11:42

Snussi писал(а):Прошерстил форум, ответа не нашел :)
...

И не найдешь :)

Копай в сторону оператора Implements - это самое приблизительное направление, которое можно в данном случае указать. Ну, не считая того, которое известно всем... :)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.12.2004 (Ср) 11:52

Не, не покатит :)
Как он сможет создать объект, зная только один из его фейсов?

Придётся, видимо, подключать TypLib Information. Она, насколько я помню, позволяет и в файлах копаться... Покопавшись, получим инфу о том, чё там можно насоздавать :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Snussi
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 151
Зарегистрирован: 21.07.2004 (Ср) 18:08
Откуда: Москва, Россия

Сообщение Snussi » 08.12.2004 (Ср) 12:17

Т.е., зная только имя файла ocx подключить его нельзя?

И вопрос №2 - а если это ActiveX DLL?

Вообще, проблема стоит в создании плагинов к приложению. Может еще какие идеи есть, как это сделать?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 08.12.2004 (Ср) 12:33

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

Snussi
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 151
Зарегистрирован: 21.07.2004 (Ср) 18:08
Откуда: Москва, Россия

Сообщение Snussi » 08.12.2004 (Ср) 13:48

На всякий случай, более конкретно опишу задачу:

Имеется некая программа (своего рода, сервер приложений), например калькулятор :)

И хочется для каждой опрерации использовать плагин. Для данного примера - у каждого плагина будет метод DoWork(x as long, y as long) as long и свойство MeID as long .

Каждый плагин при вызове этого метода производит какие-то вычисления с переменными x и y и возвращает результат. Какой из плагинов использовать - решает сам сервер. Ориентируется он, например, на MeID, но при запуске сервера неизвестно, какие плагины стоят, а какие - нет (например, плагины - файлы в определенной директории).

Как сделать, чтобы при запуске сервер считывал плагины из директории, создавал массив плагинов и потом с ними работал?

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 08.12.2004 (Ср) 14:34

Использовать нативные DLL, а не ActiveX. Я сам в свое время думал подобное реализовать, но потом забросил - забыл я уже С++, забыл... Хотя, конечно, все зависит от усилий, которые ты готов затратить на реализацию этого проекта - сделать-то можно все, что угодно.


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

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

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

    TopList  
cron