Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

ActiveX y Visual Basic

Estas en el tema de ActiveX y Visual Basic en el foro de Visual Basic clásico en Foros del Web. Hola a todos. Tengo dos preguntas relacionadas con los controles ActiveX. La primera: ¿Cómo puedo obtener una lista que describa los controles que contiene un ...
  #1 (permalink)  
Antiguo 18/03/2002, 11:25
 
Fecha de Ingreso: marzo-2002
Mensajes: 3
Antigüedad: 22 años, 2 meses
Puntos: 0
ActiveX y Visual Basic

Hola a todos. Tengo dos preguntas relacionadas con los controles ActiveX.
La primera: ¿Cómo puedo obtener una lista que describa los controles que contiene un fichero .ocx o .dll en tiempo de ejecución? Me explico. Sé que el fichero fm20.dll contiene los controles label, textbox, commandbutton, etc., y que se refencian como: "Forms.Label.1", "Forms.TextBox.1", etc.. ¿Pero cómo puedo obtener esta información para cualquier fichero .ocx o .dll en tiempo de ejecución?
La segunda: Si utilizo la función CreateObject, ésta me devuelve el objeto que he creado. Por ejemplo, si escribo:

Dim Obj As Object
Set Obj = CreateObject("Forms.Label.1")

Obj contendrá una instancia del objeto Label. ¿Pero ahora cómo puedo decir que se dibuje este objeto por ejemplo en un formulario? He probado con la función SetParent que ofrece la librería "user32.dll" para hacer algo del estilo: SetParent(Obj.hWnd, Me.hWnd) pero no funciona, como me temía...
En fin, si alguien sabe resolverme estas dudas me dará una inmensa alegría.
Gracias por adelantado y espero no haberles aburrido con un e-mail tan extenso.

Jose
  #2 (permalink)  
Antiguo 18/03/2002, 13:05
 
Fecha de Ingreso: marzo-2002
Mensajes: 3
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: ActiveX y Visual Basic

Me respondo a mí mismo la seguda pregunta.
Cuando genero un nuevo control lo he de guardar en una variable del tipo VBControlExtender

Dim WithEvents ctlDynamic As VBControlExtender

Y lo inicializaré de esta manera, por ejemplo en la función Form_Load()...

Licenses.Add "MSComctlLib.TreeCtrl" 'por ejemplo...
Set ctlDynamic = Controls.Add("MSComctlLib.TreeCtrl", "myctl", Me) 'metemos en el formulario un nuevo control treeview...
ctlDynamic.Move 1, 1, 2500, 3500 'para situarlo en un sitio en cuestion...

Y podremos controlar sus eventos con...
Private Sub ctlDynamic_ObjectEvent(Info As EventInfo)
If EventInfo.Name = "Click" Then
MsgBox("Has clicado con el ratón...") 'o lo que sea...
End If
'Aquí podríamos tratar el resto de eventos...
End Sub
Bueno. Ahora sólo me hace falta saber cómo puedo recoger el nombre de las clases de un componente o control ActiveX.
Gracias de nuevo!

Jose
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:26.