Actualizado el 30/Jul/2003 (20-May-1997)
Contenido:
- Controles, Listados y P�ginas de Ejemplo de controles ActiveX (antes OCX)
- Si quieres ver un extracto de lo que nos deparar� el VB5, sigue este link.
- Creaci�n de un control ActiveX (OCX) Paso a Paso
- Nuevo apartado HTML Layout Control, para crear p�ginas ALX (ActiveX)
- Otro control ActiveX m�s: gsSelDir.ocx (p�gina explicativa) y la p�gina de Prueba
- Control ActiveX: gsVerImagenes, La explicaci�n (en esta p�gina) y tambi�n la p�gina de Prueba
- Control ActiveX: gsSelDirFile (p�gina explicativa) y la p�gina de Prueba
- Control ActiveX: gsImage (p�gina de prueba, el c�digo del control y ejemplos para VB4 y VB5)
- 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
- Ctl_Guil (ctl_Guil.zip)
- gsMarquee (gsMarque.zip)
- gsSpin (gsSpin.zip 16.2 KB)
- gsSelDir (p�gina explicativa)
- gsVerImagenes (la explicaci�n)
- gsSelDirFile (p�gina explicativa)
- gsImage (gsImage.zip)
- Ctl_Guiller (Ctl_Guiller.htm)
- gsMarquee (gsMarquee.htm)
- gsSpin (gsSpin.htm)
- gsSelDir (gsSelDir.htm)
- gsVerImagenes (gsVerImagenes.htm)
- gsSelDirFile (gsSelDirFile.htm)
- gsImage (gsImage.htm)
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 SubAhora 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