Controles ActiveX
Visual Basic 5, VB5cce y VB6

Actualizado el 30/Jul/2003 (20-May-1997)



Contenido:

  1. Controles, Listados y P�ginas de Ejemplo de controles ActiveX (antes OCX)
  2. Si quieres ver un extracto de lo que nos deparar� el VB5, sigue este link.
  3. Creaci�n de un control ActiveX (OCX) Paso a Paso
  4. Nuevo apartado HTML Layout Control, para crear p�ginas ALX (ActiveX)
  5. Otro control ActiveX m�s: gsSelDir.ocx (p�gina explicativa) y la p�gina de Prueba
  6. Control ActiveX: gsVerImagenes, La explicaci�n (en esta p�gina) y tambi�n la p�gina de Prueba
  7. Control ActiveX: gsSelDirFile (p�gina explicativa) y la p�gina de Prueba
  8. Control ActiveX: gsImage (p�gina de prueba, el c�digo del control y ejemplos para VB4 y VB5)
  9. C�mo instalar y configurar el Visual Basic 5.0 Control Creation Edition (VB5CCE) (20/Jul/2003)

Controles, Listados y P�ginas de Ejemplo:

A�n no he hecho muchas cosas con VB5, pero como referencia, puedes ver los listados de los dos controles ActiveX que he creado, s� que no son nada del otro mundo, pero ten�a que empezar con algo... 8-}

Los Listados Las P�ginas de Ejemplo

Hay un art�culo (en ingl�s) con un ejemplo de c�mo crear una control ActiveX (OCX), en el que me bas� para crear los controles, a ver si recuerdo donde est�... (seguro que era por "donde" Microsoft...)

Pero con el "tutorial" sobre la Creaci�n de un control ActiveX Paso a Paso que he creado, puedes aprender algo, �espero!


Sobre el gsVerImagenes.ocx

Este control lo he hecho para probar eso que dicen de que ahora los Image y Picture aceptan tambi�n imagenes GIF y JPG.
�Y es cierto! Para probarlo, usa este control.
El problema, que s�lo guarda en formato BMP. Pero... algo es algo.

Pulsa este link si quieres bajar los listados del control, para usar con el VB5 o el VB5 cce (gsverimg.zip 10.1 KB)

Ahora la explicaci�n de las cosillas que he hecho en este control. �Hab�a que aprovechar el viaje!
En primer lugar, si te fijas en el form de prueba, s�lo con este control tienes todos los elementos para probar:
He incluido el bot�n Salir, para probar lo de los eventos y todo eso, este evento se produce al pulsar en ese bot�n y se puede controlar desde el form en el que est� el control, (mira el listado para comprenderlo)

Bueno..., hoy no estoy muy inspirado, as� que aqu� tienes el listado del control y del form de prueba. La p�gina de propiedades no la listo, porque no tiene ning�n misterio. �A disfrutar que son dos d�as!

'-----------------------------------------------------------
'Prueba de Control para mostrar/guardar imagenes (12/Abr/97)
'
'(c)Guillermo Som, 1997
'-----------------------------------------------------------
Option Explicit

Dim iH As Integer
Dim iW As Integer

'Constantes para saber en que control estamos
Const esImg = 0
Const esPic = 1

'Los eventos de este control
Event Salir()
Event Examinar(ByVal sFile As String)
Event Guardar(ByVal sFile As String)


Private Sub cmdExaminar_Click(Index As Integer)
    'Examinar una archivo de imagen y asignarla al control
    Dim sFile As String

    On Local Error Resume Next

    'Los atributos de las extensiones ya est�n asignados
    sFile = "Image"
    If Index = 1 Then sFile = "Picture"
    CommonDialog1.DialogTitle = "Abrir una imagen en el control " & sFile

    CommonDialog1.filename = TxtPath(Index)
    CommonDialog1.ShowOpen
    sFile = Trim$(CommonDialog1.filename)
    If Err Or Len(sFile) = 0 Then
        Err = 0
    Else
        TxtPath(Index) = sFile
        If Index = 0 Then
            Image1.Picture = LoadPicture(sFile)
        Else
            Picture1.Picture = LoadPicture(sFile)
            'Picture1.Image = LoadPicture(sFile)
        End If
        'Producir el evento Examinar
        RaiseEvent Examinar(sFile)
    End If
    On Local Error GoTo 0
End Sub


Private Sub cmdGuardar_Click(Index As Integer)
    'Guardar la imagen como un archivo...
    Dim sFile As String

    On Local Error Resume Next

    'Los atributos de las extensiones ya est�n asignados
    sFile = "Image"
    If Index = 1 Then sFile = "Picture"
    CommonDialog1.DialogTitle = "Guardar la imagen del control " & sFile

    CommonDialog1.filename = TxtPath(Index)
    'S�lo se almacenar� en formato BMP,
    'independientemente de la extensi�n que le demos.
    CommonDialog1.Filter = "S�lo BMP (*.bmp);*.bmp|Otro tipo pero el formato es BMP|*.*"
    CommonDialog1.ShowSave
    sFile = Trim$(CommonDialog1.filename)
    If Err Or Len(sFile) = 0 Then
        Err = 0
    Else
        TxtPath(Index) = sFile
        If Index = 0 Then
            'Se guardar� en formato BMP
            SavePicture Image1.Picture, sFile
        Else
            'En cualquier caso se guarda con formato BMP
            'SavePicture Picture1.Image, sFile
            SavePicture Picture1.Picture, sFile
        End If
        'Producir el evento Guardar
        RaiseEvent Guardar(sFile)
    End If
    On Local Error GoTo 0
End Sub


Private Sub cmdSalir_Click()
    RaiseEvent Salir
End Sub


Private Sub UserControl_Initialize()
    'MsgBox "UserControl_Initialize"
    iH = ScaleHeight
    iW = ScaleWidth
    'TamanoInicial
End Sub


Private Sub UserControl_Resize()
    'Este es el �nico tama�o permitido
    If Width <> iW Then
        Width = iW
    End If
    If Height <> iH Then
        Height = iH
    End If
End Sub
'
'�ADVERTENCIA! NO QUITAR O MODIFICAR LAS SIGUIENTES LINEAS CON COMENTARIOS!
'MappingInfo=TxtPath(1),TxtPath,1,Text
Public Property Get NombrePicture() As String
    NombrePicture = TxtPath(esPic).Text
End Property


Public Property Let NombrePicture(ByVal New_NombrePicture As String)
    TxtPath(esPic).Text() = New_NombrePicture
    PropertyChanged "NombrePicture"
    'Intentar cargar la imagen
    CargarImagen Picture1, New_NombrePicture
End Property


'�ADVERTENCIA! NO QUITAR O MODIFICAR LAS SIGUIENTES LINEAS CON COMENTARIOS!
'MappingInfo=TxtPath(0),TxtPath,0,Text
Public Property Get NombreImage() As String
    NombreImage = TxtPath(esImg).Text
End Property


Public Property Let NombreImage(ByVal New_NombreImage As String)
    TxtPath(esImg).Text() = New_NombreImage
    PropertyChanged "NombreImage"
    'Intentar cargar la imagen
    CargarImagen Image1, New_NombreImage
End Property


' Cargar valores de propiedades desde el almacenamiento
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
    TxtPath(1).Text = PropBag.ReadProperty("NombrePicture", "D:\Webs\guiller\Imagenes\el_guille.jpg")
    TxtPath(0).Text = PropBag.ReadProperty("NombreImage", "D:\Webs\guiller\Imagenes\el_guille.jpg")
    '�Asignar las imagenes?
    'No es necesario
End Sub


' Escribir valores de propiedades en el almacenamiento
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
    Call PropBag.WriteProperty("NombrePicture", TxtPath(1).Text, "D:\Webs\guiller\Imagenes\el_guille.jpg")
    Call PropBag.WriteProperty("NombreImage", TxtPath(0).Text, "D:\Webs\guiller\Imagenes\el_guille.jpg")
End Sub


Private Sub CargarImagen(queControl As Control, ByVal sFile As String)
    'Cargar la imagen especificada
    On Local Error Resume Next

    queControl.Picture = LoadPicture(sFile)
    If Err Then
        Err = 0
        queControl.Picture = LoadPicture()
    End If
    On Local Error GoTo 0
End Sub

Ahora el form de prueba: (simple, �verdad?)

'------------------------------------------------------
'Form de prueba para el control VerImagenes (12/Abr/97)
'
'(c)Guillermo Som, 1997
'------------------------------------------------------
Option Explicit


Private Sub Form_Load()

    With VerImagenes1
        'Ajustarlo al tama�o del control
        '
        'Esto es por si se quiere centrar el form
        'Width = 360 + .Width
        'Height = 480 + .Height
        '
        'Posicianarlo arriba a la izquierda
        Move 0, 0, 360 + .Width, 480 + .Height

        'Obligar a cargar las imagenes especificadas
        .NombreImage = .NombreImage
        .NombrePicture = .NombrePicture
    End With
    'Centrar el form
    'Move (Screen.Height - Height) / 2, (Screen.Width - Width) / 2
End Sub


Private Sub Form_Unload(Cancel As Integer)
    Set Form1 = Nothing
End Sub


Private Sub VerImagenes1_Examinar(ByVal sFile As String)
    'Este evento se produce cuando se abre una imagen
    Caption = "Examinado/abierto: " & sFile
End Sub


Private Sub VerImagenes1_Guardar(ByVal sFile As String)
    'Este evento se produce cuando se guarda una imagen
    Caption = "Guardado como " & sFile
End Sub


Private Sub VerImagenes1_Salir()
    'Si se produce este evento, es que se ha pulsado Salir.
    Unload Me
    End
End Sub

ir al índice