English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Todas las categorías

Necesito un ejemplo, resulta ke estoy aprendiendo a programar en Visual Basic y no se que sea un OCX, me podrian mandar un ejemplo y para ke se ocupa?

De ante mano muchas gracias...

2006-08-02 06:18:15 · 2 respuestas · pregunta de Anonymous en Ordenadores e Internet Programación y Diseño

2 respuestas

Definicion en Ingles:

Short for OLE Control Extension, an independent program module that can be accessed by other programs in a Windows environment. OCX controls end with a .ocx extension. OCX controls represent Microsoft's second generation of control architecture, the first being VBX controls written in Visual Basic.
Both VBX and OCX controls have now been superseded by ActiveX controls. However, ActiveX is backward compatible with OCX controls, which means that ActiveX containers, such as Microsoft's Internet Explorer, can execute OCX components

Un Ejemplote, jajaja

Creando un control ActiveX (OCX)
Dr. Crow Webmaster de Dr. Crow WEB

Bueno, no vamos a teorizar demasiado, porque es aburrido. Para crear un control OCX, vamos a abrir VB como todos los días y vamos a crear un proyecto "EXE Estandar" y le vamos a agregar uno de tipo "Control ActiveX". De tal forma que nos quede formado un Grupo de Proyectos que los incluya a los dos. El control que crearemos será uno que nos permita apagar win, reiniciarlo, etc.
Seleccionamos la propiedad "InvisibleAtRunTime" y la ponemos en true, ya que nuestro control no será visible durante la ejecución del proyecto en el que se encuentre.

Podemos ver que nuestro control es como un form normal, pero sin bordes, ahora inserta un image (Image1) y ponle como picture un icono que te parezca representativo de lo que va a hacer nuestro control.

En el evento "Resize" del UserControl pon lo siguiente...

Private Sub UserControl_Resize()
Image1.Top = 0
Image1.Left = 0
UserControl.Height = Image1.Height
UserControl.Width = Image1.Width
End Sub

Esto hará que el control se vea en el form como si fuera solo el icono del image (igual a lo que pasa con un control Timer).

Ahora debemos crear los Metodos que poseerá nuestro control, para eso ve al menú "Complementos", de ahí a "Administrador de Complementos" y haz doble clic sobre "Asistente para interfaz de controles ActiveX de VB" de forma que al lado diga "Cargado", pulsa "Aceptar".

El "Asistente para interfaz de controles ActiveX de VB" es un asistente que nos guiará paso a paso en la asignación de métodos para nuestro control. Otra vez ve a "Complementos", allí te aparecerá una nueva opción, que es el asistente. Ábrelo y pulsa "Siguiente". En el cuadro "Nombres Disponibles" tienes todos los métodos mas comunes que puedes insertar, en "Nombres Seleccionados" no dejes nada y pulsa "Siguiente". En esta nueva ventana podemos definir métodos personalizados.

Clic en "Nuevo" y crea estos métodos...

1) "Dialogo_Apagar"
2) "Cerrar_Sesion"
3) "Apagar_Sistema"
4) "Reiniciar_Sistema"
5) "Forzar_Apagado"

No te olvides de poner a cada uno como "Metodo" en el cuadro "Tipo". Dale a "Siguiente", en el cuadro siguiente no hacemos nada, así que "Siguiente" de nuevo.
El cuadro que nos salteamos te permite decir a cual de los componentes insertados en tu control corresponden los métodos que tengas puestos (de los que aparecían en "Nombres Disponibles") ya que hay métodos que lo tienen mas de uno de los controles insertados y esto se presta a confusiones.

En la ventana en la que nos encontramos ahora podemos agregarle una descripción a cada cosa y designar que valor retorna una función. Pongan una descripción a cada método si quieren, aunque los nombres que tienen son bastante descriptivos. No cambien nada en lo de "Tipo Devuelto". Denle a "Siguiente" y a "Finalizar".

Vamos al código de control. Tenemos que declarar las APIs que realizaran las operaciones necesarias:

Esta nos permitirá mostrar el dialogo de "Apagar el Sistema":

Private Declare Function SHShutDownDialog Lib "shell32" Alias "#60" (ByVal YourGuess As Long) As Long

Esta ejecutara las demás operaciones:

Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

Const EWX_LOGOFF = 0
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4

Ya tenemos las declaraciones, ahora fíjense abajo y vera que dice:

Public Function Dialogo_Apagar() As Variant
End Function

Y así para las demás funciones.
Ahora debemos poner las llamadas a las APIs dentro de cada función:

Public Function Dialogo_Apagar() As Variant
SHShutDownDialog 0
End Function

Public Function Cerrar_Sesion() As Variant
ExitWindowsEx EWX_LOGOFF, 0
End Function

Public Function Apagar_Sistema() As Variant
ExitWindowsEx EWX_SHUTDOWN, 0
End Function

Public Function Reiniciar_Sistema() As Variant
ExitWindowsEx EWX_REBOOT, 0
End Function

Public Function Forzar_Apagado() As Variant
ExitWindowsEx EWX_FORCE, 0
End Function

No elimines los comentarios ni el resto del código que haya generado automáticamente VB.

FELICIDADES!!!!! nuestro OCX esta casi listo
Dale a guardar y pasa al form del otro proyecto (pulsando CTRL+F4 par cerrar la ventana del OCX). El ultimo icono que aparece en la barra de la izquierda es el de nuestro OCX, dibuja y ve a la ventana de código del form. Escribe "UserControl11" y pon un punto para ver los métodos del control, aparecen los nuestros mas algunos que VB pone por defecto.

Ahora vamos a darle mas "facha" a nuestra creación... Pon su propiedad "CanGetFocus" a False (nuestro control no obtiene el foco porque es invisible).
En Paint u otro programa de dibujo crea un BMP de 16 x 15 pixels, similar al icono del Image1. Esa imagen que creaste ponla en "ToolBoxBitmap", ese es el icono que aparecerá en la barra de la izquierda (la barra de herramientas), en lugar del icono por defecto. En la propiedad "Nombre" ponle algo que quieras (yo lo llamé "DC_Shut"), de modo que cuando dibuje un control en un form, lo ponga como DC_Shut1, DC_Shut2, etc. Ve al menú "Proyecto" y a "Propiedades de Proyecto2" (proyecto2 es el proyecto del OCX, no el otro). En "Nombre del Proyecto" pon lo que quieras que aparezca en el cuadro de componentes (algo como el nombre pero un poco mas descriptivo), yo le puse "DC_Shutdown_Control".

Ve al Form1, borra el que control que pusiste antes y el código que escribiste (si escribiste algo) e inserta uno nuevo. Pon en el form varios botones (uno que llame a cada funcion del OCX). Guarda todo y pruébalo (recuerda que apagara tu maquina así que GUARDA todo).

¿Todo OK?
Entonces procedamos a compilar el OCX, elige el proyecto y ve al menú "Archivo" y a "Generar DC_Shut.OCX". Elige donde lo quieres guardar, pon un nombre (Si se llama DC_Shut, ponle DC_Shut.OCX). Ve a "Opciones" y agrega la info que quieras, pa que quede claro que eres TU el creador de este SUPERESPECTACULARULTRACOOLOCX.

2006-08-02 06:26:28 · answer #1 · answered by Mandiux 7 · 2 0

mmmmmm........no se!!!!!!

pero suerte en tu búsqueda!!!!!!!

saludos!!!!!!!!

2006-08-02 13:26:19 · answer #2 · answered by *°jonhy°* 2 · 0 0

fedest.com, questions and answers