Страница: 1 | 2 |
Вопрос: Работа с CreateObject
Добавлено: 12.10.04 12:46
Автор вопроса: RomaVis | ICQ: 266287351
Я знаю, что CreateObject нужен для создание ActiveX контрола (для плагинов к примеру нада такая чтука) НО!!!! Я не знаю как вводить параметр Class as string
Если можете - помогите пожалуйста!!
Ответы
Всего ответов: 16
Номер ответа: 1
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #1
Добавлено: 12.10.04 13:26
В смысле? Пишешь имя класса в кавычках. Как еще?
Номер ответа: 2
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #2
Добавлено: 12.10.04 13:49
Если тебе нужно узнать имя класса, тогда это должно помочь. Просто наведи курсор мышки на объект…
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function WindowFromPointXY Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Sub Timer1_Timer()
 im CurPos As POINTAPI
 im hWnd As Long
 im strClassName As String * 255
 im NameLen As Byte
GetCursorPos CurPos
hWnd = WindowFromPointXY(CurPos.X, CurPos.Y)
NameLen = GetClassName(hWnd, strClassName, 255)
Me.Cls
Me.Print Left(strClassName, NameLen)
End Sub
Номер ответа: 3
Автор ответа:
dNW
Вопросов: 30
Ответов: 683
Профиль | | #3
Добавлено: 12.10.04 16:08
Вообще-то нужно открыть regedit, зайти в HKEY_CLASSES_ROOT и там посмотреть имена классов
Номер ответа: 4
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #4
Добавлено: 12.10.04 18:13
Вот еще один вопрос: я создаю объекты через CreateObject, но будет ли работать callback, если я укажу продеруру в этом объекте?
Номер ответа: 5
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #5
Добавлено: 13.10.04 00:30
А зачем тебе вообще CreateObject?? Он же жутко тормозной! Не проще ли объявить переменную?
На пример так:
Set varClass = New ClassName
И делай с varClass что пожелаешь!! Через varClass ты получишь доступ ко всем методам и свойствам объявленного класса..
Номер ответа: 6
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #6
Добавлено: 13.10.04 06:42
Да я б подключил... Но я думаю это использовать в плагинах, а там я не знаю сколько этих классов будет.
Номер ответа: 7
Автор ответа:
dNW
Вопросов: 30
Ответов: 683
Профиль | | #7
Добавлено: 13.10.04 08:00
2Александр: Вроде да
Например этот код создает объект и ,вызывая функцию, получает значение
Set sc=CreateObject("ScriptControl"
sc.Language="VBScript"
MsgBox sc.Eval("2*10^3"
Set sc=Nothing
Номер ответа: 8
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #8
Добавлено: 13.10.04 15:04
То есть, как я понял, AdressOf будет работать?
Номер ответа: 9
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #9
Добавлено: 13.10.04 15:10
dNW, ну у меня по твоему примеру естественно все работать будет... Но мне надо именно subclassing.
Номер ответа: 10
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #10
Добавлено: 13.10.04 15:18
EROS, не учи человека делать несуразности. Если он пишет ActiveX - пусть пишет через CreateObject. COM и виртуальная машина VB, знаешь ли, немного непохожие вещи... Для всех COM'овских причендалов лучше использовать CreateObject.
Александр, поясни что именно ты собрался сабклассировать в данном случае?
Номер ответа: 11
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #11
Добавлено: 13.10.04 19:48
LOL, я хочу сделать плагины не только для обработки текста (для моего редактора), то и для, например, установки новых панелей/менюшек в него. Но вот я думаю сабкласс подойдет.
Номер ответа: 12
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #12
Добавлено: 13.10.04 19:49
LOL, я хочу сделать плагины не только для обработки текста (для моего редактора), то и для, например, установки новых панелей/менюшек в него. Но вот я думаю сабкласс подойдет.
Номер ответа: 13
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #13
Добавлено: 13.10.04 19:51
Конечно, это для обработки событий...
Номер ответа: 14
Автор ответа:
j3d1
ICQ: 8370005
Вопросов: 34
Ответов: 466
Профиль | | #14
Добавлено: 13.10.04 21:18
//4 CallBack будет работать, я реализовывал когдато с помощью CreateObject поддержку плагинов, но потом понял что это есть геморой и сделал прямой вызов ф-ии из ДЛЛ. C CreateObject будет много проблем:
1. Если ты компилил АппВизардДЛЛ под нт2к то под вин98 этот плагин(ДЛЛ) утебя не схавается.
2. При выполнении самой проги на разных платформах, вызывает жуткие глюки при создание обьекта(даже если ты поставил On error goto ...) нужно будет перекомпилировать прогу под эту платформу.
есть ещё дофига причин по которым лучще юзать прямой вызов из ДЛЛ(не АППВИЗАРД)
Номер ответа: 15
Автор ответа:
j3d1
ICQ: 8370005
Вопросов: 34
Ответов: 466
Профиль | | #15
Добавлено: 13.10.04 21:20
а если, есть необходимость в них, то лучше писать на C++