powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Классы... просветите недалекого
13 сообщений из 13, страница 1 из 1
Классы... просветите недалекого
    #32253078
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подключаю к проекту в AccessXp сторонний компонент, невизуальный,(работает номана). Компонент - это класс. Переменные могу объявить, например: Dim objFTP As DevPowerFTP.FTP.
А вот когда: Set objFTP = New DevPowerFTP.FTP - не хочет, ругается на New. Когда пишешь New, потом список доступных объектов высвечивается и там этого FTP не видать.
Объясните мне, это получается что можно написать невизуальный компонент, который не захочет создаваться динамически, а токо кидать его на форму на этапе проектирования??? или он все таки должен уметь созадаваться динамически коль зовется классом...
...
Рейтинг: 0 / 0
Классы... просветите недалекого
    #32253100
Несколько наводящих вопросов:
Что из себя представляет компонент, DLL-ку, содержащую класс?
В чем написана и где "работает номана"?
На нее установлена ссылка? В ObjectBrouser видна?
В DevPowerFTP.FTP, DevPowerFTP - имя класса, а FTP дочернего класса?

Может класс создан как глобальный? Т.е. обращаться к его свойствам и методам нужно напрямую, как, например, к объекту Application?
...
Рейтинг: 0 / 0
Классы... просветите недалекого
    #32253130
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясните мне, это получается что можно написать невизуальный компонент
Гыыы
Это называется Public Not Createble (в VB)
Ты еще попробуй DAO.Recordset так создать, тоже будешь удивлен. Хоть его и на форму то нельзя кидать.
Или, еще лучше, напиши Set asdf = New Object
...
Рейтинг: 0 / 0
Классы... просветите недалекого
    #32253310
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Анатолий: Этот компонент - ocx. DevPowerFTP - название библиотеки, в ней несколько Enum и класс FTP с методами и свойствами (правда еще зачем-то есть класс - pagGeneral - абсолютно пустой)

2Лох Позорный: Слушай, обыдно понимаешь, да... нафиг так делать для обычного невизуального компонента. С Recordset понятно, он сам себе не принадлежит, там строгая иерархия, ну а тут то что?
...
Рейтинг: 0 / 0
Классы... просветите недалекого
    #32253337
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 ocx должна быть зарегистрирована в винде делается это с помощью regsvr32
2 ссылка на этот ocx должна быть прописана в референсах

если вышеуказанное сделано и данная библиотека подходит для использования то объекты библиотеки должны появиться браузере объектов и появиться в конструкторе после Set objFTP = New

кроме того необязательно декларировать так как у тебя
Dim objFTP As DevPowerFTP.FTP

можно оставить variant или декларировать как обект
Dim objFTP
Dim objFTP as Object
...
Рейтинг: 0 / 0
Классы... просветите недалекого
    #32253352
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, все выше указанное проделано.

И так тоже пробовал...
...
Рейтинг: 0 / 0
Классы... просветите недалекого
    #32253358
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кинь библиотеку мне на мыло - посмотрю
...
Рейтинг: 0 / 0
Классы... просветите недалекого
    #32253359
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 АлексейК
Да с каких пор ocx-ы можно создавать с помощью конструкции Set asdf = New чтототам? Или я чего-то не понимаю?

2 SergeySV
Примерно так: если компонент можно кидать на форму - то он уже визуальный. Может, он и невидимый, но это пофиг. Кроме как кидать на форму с ним работать не получится.

Слушай, обыдно понимаешь, да
Абыдна канешна! А что делат? Ты уж претензии к разработчикам этого контрола кидай - зачем они его сделали контролом, а не обычным COM-объектом.
...
Рейтинг: 0 / 0
Классы... просветите недалекого
    #32253366
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, наверное Лох прав
ocx это ведь библиотека контрола а не COM объекта. а контролы не могут быть отдельными обектами и их надо создавать на формах.
...
Рейтинг: 0 / 0
Классы... просветите недалекого
    #32253375
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Лох Позорный: Хмм... значит говоришь сделали контролом, а не обычным COM-объектом...

Почему у меня сомнения-то возникли: смотрю я на Mswinsck.ocx - ocx, на форму кладется и сам невидимый(ну точь в точь как этот FTP), а через New пожалуйста создавай не хочу, проблем нет.

2АлексейК: скинул.
...
Рейтинг: 0 / 0
Классы... просветите недалекого
    #32253408
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 SergeySV
Ну значит и так бывает. Жизнь прекрасна и удивительна.
Объект либо Createble, либо нет.
Он либо кидается на форму, либо нет.
А уж визуальный он или нет - дело десятое.
Как его написали - так руки и оборвать
...
Рейтинг: 0 / 0
Классы... просветите недалекого
    #32253413
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да уж, потому самому и хотелось написать...
...
Рейтинг: 0 / 0
Классы... просветите недалекого
    #32254775
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо АлексейК. С его помощью выход был найден.
В своем обсуждении мы совсем забыли про замечательную функцию CreateObject. Вот такой пример будет работать:

Dim ctl As DevPowerFTP.FTP
Set ctl = CreateObject("DevPowerFTP.FTP")
Debug.Print ctl.Version
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Классы... просветите недалекого
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]