Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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()
    ;Dim CurPos As POINTAPI
    ;Dim hWnd As Long
    ;Dim strClassName As String * 255
    ;Dim 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?? Он же жутко тормозной! Не проще ли объявить переменную?
На пример так:
Dim varClass as LibName.ClassName
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Александр: Вроде да
Например этот код создает объект и ,вызывая функцию, получает значение

Dim sc As Object
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++

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам