| Como
insertar un control OCX y hacer uso de el en FoxPro
- ¿Que es un OCX?
- ActiveX
- ¿Como se registra un OCX?
- Agregar un ActiveX de un OCX
- ¿Como agregar un control
ActiveX a un objeto por linea de comando?
- Conclusión
¿Qué es un OCX?
El termino OCX hace referencia a instrucciones
pre programadas capaces de ser insertadas en cualquier
aplicación que esta siendo desarrollada,
y permite al programador ahorrar tiempo debido
a que en lugar de reprogramar un código
anteriormente hecho, ahora únicamente lo
insertamos. Las funciones de una OCX son
ilimitadas, únicamente depende de que cualquier
programador la desarrolle e implemente para futuros
usos.
ActiveX
Active X fué el nuevo nombre con el que
Microsoft denominó a sus componentes distribuidos
de software 'Component Object Model', (COM), compatible
OCX (extensión de control OLE) son extensiónes
de controles. Los ActiveX trabaja actualmente
solo sobre Windows.
¿Como se registra un OCX?
Para utilizar un OCX este se debe registrar en
el sistema operativo, en el caso de Windows la
OCX se registra usando REGSVR32. La sintaxis es:
REGSVR32 [/u]
[/s] [/n]
[/i[:LineaCmd]]
NombreOcx
Ejemplo
Regsvr32
/s
richtx32.ocx
NOTA: En la liena anterior
se registro el control ocx que permite el majeo
de texto enriquesido.
| Parámetros REGSVR32 |
| /u |
Servidor quitado |
| /s |
Sin notificación |
| /i |
Llamar DllInstall pasándole opcionalmente
[:LineaCmd], cuando se usa con /u llama
a la Dll de desinstalación |
| /n |
No llamar DllRegisterServer; esta opción
debe llamarse con /i |

Es muy importante tener en cuenta que debemos
copiar las OCX en el equipo cliente, registrarlas
para luego utilizarlas, esta tarea la podemos
realizar ya sea con un instalador como Inno Setup
en el momento de instalar nuestra aplicación,
pero también podemos crear un BAT que haga
la labor de copiar y registrar por nosotros. A
continuación un ejemplo de coo podría
ser :
COPY *.ocx %windir%\system32\MiApp
Regsvr32.exe /s %windir%\system32\MiApp\mscomctl.ocx
Regsvr32.exe /s %windir%\system32\MiApp\msmapi32.ocx
Regsvr32.exe /s %windir%\system32\MiApp\richtx32.ocx
Regsvr32.exe /s %windir%\system32\MiApp\MyDAnim.ocx |
Una vez registrado el control podemos usarlo,
para este ejemplo usaremos un treeView en un co?ntrol,
no profundizaremos en el uso de este control.
Agregar un ActiveX de un OCX
Se comienza de la misma forma que con cualquier
otro control que se añada. En este caso
el icono
"ActiveX Control (OLEControl)" se obtiene
desde la barra de herramientas (standard) "Form
Controls". Después el ratón
se mueve hacia el área del formulario donde
estará colocado el control. Primero hacia
la esquina superior izquierda, presione sin soltar
y arrástrela hasta donde establecerá
la esquina inferior derecha.
Al soltar el ratón en el punto apropiado
notará una pequeña demora y entonces
aparece la presentación del diálogo
"Insert Object" . En un listbox titulado
"Control Type", se muestran los controles
disponibles instalados en el sistema. Pulsando
la tecla "m" el listbox se coloca en
el primero que comience con "m". En
mi caso corresponde al "Macromedia Flash
Factory Object". Moviendo la barra de desplazamiento
hacia abajo eventualmente mostrará el "Microsoft
Treeview Control" - dos en mi caso: "Microsoft
Treeview Control 6.0 (SP4)" y "Microsoft
Treeview Control, versión 5.0 (SP2)".
Luego seleccionamos el control de la lista de
objetos
Tenga en cuenta que debe seleccionar la opción
"Insertar control",
el tipo de control depende de la ocx que desea
utilizar, para nuestro ejemplo buscamos "Microsoft
TreeView Control 6.0 (SP4)" que
esta basado en el control "mscomctl.ocx".

Despues de que inserto el control ya puede hacer
uso de el, cada control ActiveX puede tener su
propio panel de propiedades, solo debe hacer click
derecho sobre el objeto que inserto, luego seleccione
TreeCtrl Properties (Para este ejemplo) y se desplegara
la siguiente ventana
En esta ventana puede estableser propíedades
del control.
¿Como agregar un control ActiveX
a un objeto por linea de comando?
Usted tambien puede agregar controles ActiveX,
solo debe saber el nombre de la clase en la que
esta basado el objeto, en el caso del TreeView
esta es MsComctlLib.TreeCtrl.2
dependiendo del control del OCX esta clase puede
variar.
En el siguiente ejemplo crearemos un formulario
al cual le agregaremos un control TreeView, luego
utilizando el metodo propio del control agregaremos
unos items.
loForm=CREATEOBJECT('Form')
&&Creamos
un formulario
WITH loForm
.AddObject('oleTreeView','Olecontrol','MsComctlLib.TreeCtrl.2')
&&Agregamos
el control
WITH .oleTreeView
.height=loForm.Height
.Width =loForm.Width
.Nodes.Add(,0,"Root","Root").Expanded=
.T. &&Manipulamos
un metodo del control ActiveX
.Nodes.Add("Root",4,"Item1","Item
1")
.Nodes.Add("Root",4,"Item2","Item
2")
.Nodes.Add("Root",9,"Item4,"Item3","Item
3")
.Visible=.t.
ENDWITH
.Visible=.t.
ENDWITH |
Conclusion
Usted puede agregar controles ActiveX que estan
en una OCX a un contenedor en FoxPro, solo debe
haber registrado el OCX con anterioridad, recuerde
que si distribuye su aplicación y usa controles
ActiveX tambien debe distribuir los OCX, es recomentable
que en el Instalador de su aplicación lleve
a cabo estas tareas.
José
Guillermo Ortiz Hernández
Programador Visual FoxPro, WEB Developer
|