Como insertar un control OCX y hacer uso de el en FoxPro

Tema en 'Foro Libre' iniciado por SoulOfHell, 5 Dic 2008.

  1. Sou

    SoulOfHell
    Expand Collapse
    Sargento

    Mensajes:
    303
    Me Gusta recibidos:
    0
    Como insertar un control OCX y hacer uso de el en FoxPro


    ¿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
    [​IMG]

    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 [​IMG] "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)".

    [​IMG]

    Luego seleccionamos el control de la lista de objetos

    [​IMG]

    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".

    [​IMG]

    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

    [​IMG]

    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.


     

Compartir esta página