Sección de tutoriales y manuales vb
En esta sección 8 se describen algunos de los principales objetos de visual basic que permiten trabajar por ejemplo con el portapapeles , datos de nuestra aplicación, información de la pantalla y fuentes del sistema También se ve el uso de los menues y menues contextuales
Estos objetos que tienen sus propiedades y métodos definidos como cualquier otro objeto, son fundamentales para utilizarlos en tiempo de ejecución, y nos permiten obtener información y realizar tareas específicas y variadas como por ejemplo:
Trabajar con la pantalla (objeto Screen), obtener datos referentes a nuestra aplicación ( objeto App), el objeto Clipboard ( para trabajar con el portapapeles de windows) y algunos otros
El objeto App posee una serie de propiedades para obtener información de nuestra aplicación
Propiedad Path
Esta propiedad nos devuelve una cadena con la ruta donde se encuentra el ejecutable de nuestro programa. Esta propiedad es de suma importancia, ya que nosotros siempre debemos "programar las rutas" de nuestra aplicación de forma relativa, es decir en donde realmente se encuentre nuestra aplicación, ya que el usuario puede instalar nuestro programa en un directorio cualquiera y de este modo si nosotros hemos puesto, por ejemplo de un archivo externo en una ruta absoluta (por ejemplo "c:\Archivos de programa", puede darse el caso de que la aplicación no encuentre dicho archivo ya que se ha instalado en otro directorio, ejecutarse en otra plataforma, etc..
Para resolver estos problemas sobre las referencias a las rutas de archivos, podemos utilizar el objeto App.path, y lo que hace esta propiedad es devolvernos el path de nuestra aplicación.
Ejemplo
ruta = App.Path & "\config.dat"
En el ejemplo anterior, si nuestra aplicación contiene un archivo de configuración del programa, un gráfico o cualquier otro fichero, para poder localizarlo lo hacemos mediante el objeto App.path mas el archivo que deseamos e interponiéndole la barra invertida.
Nota: lo que hay que tener en cuenta para que no se produzca un error en tiempo de ejecución, es que el objeto App.path nos devuelve solo el nombre de directorio de nuestra aplicación pero sin la barra invertida al final, es decir que si deseamos por ejemplo hacer referencia a un archivo de nuestra aplicación para trabajar con él, debemos agregarlo nosotros.
Otro ejemplo podría ser el siguiente, supongamos que tenemos un programa que carga una imagen en un formulario. Si nosotros hacemos una referencia al archivo de imagen mediante una ruta absoluta estaremos cometiendo un error, lo correcto sería
Dim Ruta As String Ruta = App.Path & "\imagen.gif" Me.Picture = LoadPicture(Ruta)
Propiedad PrevInstance del objeto App
Esta propiedad se utiliza para comprobar si nuestro programa ya está cargado en memoria devolviéndonos un valor de tipo boolean, True en caso correcto o False si no está abierto o cargado en memoria.
La propiedad PervInstance es importante ya que un usuario, por error, puede abrir mas de una instancia de la aplicación, algo que no tendría mucho sentido en la mayoría de los casos.
De este modo si se intenta abrir el programa mas de una vez, podemos mostrar un mensaje informativo y descargar la aplicación mediante la sentencia End, o no mostrar nada y terminar la ejecución. Este ejemplo muestra un mensaje cuando se intenta abrir mas de una ves, y luego de aceptar el mensaje se cierra con End
Private Sub Form_Initialize()
If App.PrevInstance = True Then
MsgBox " La aplicación ya se encuentra cargada en memoria", vbInformation
' Finaliza el programa
End
End If
End Sub
Otras propiedades del objeto App
Con el objeto Screen se puede determinar y obtener información sobre las fuentes instaladas en el sistema operativo, la resolución actual de la pantalla, el formulario y/o control que está activo,
Un ejemplo para poder obtener la resolución del monitor:
Dim Ancho As Integer Dim Alto As Integer Ancho = (Screen.Width / Screen.TwipsPerPixelX) Alto = (Screen.Height / Screen.TwipsPerPixelY) MsgBox "La resolución en Pixeles del monitor es de: " & vbNewLine & _ "Ancho: " & Ancho & vbNewLine & _ "Alto: " & Alto, vbInformation
Para obtener el alto y el ancho en pixeles debemos hacer una simple conversión ya que mediante las propiedades width y height obtenemos el ancho y el alto del monitor pero expresado en twips, para obtener ese valor en pixeles hay que dividirlo por la propiedad TwipsPerPixelX y TwipsPerPixelY, que son propiedades que las podemos acceder desde el objeto Screen
El objeto screen posee un objeto o colección llamado Fonts que es un vector que contiene las fuentes del sistema y una propiedad llamada FontCount para saber la cantidad de fuentes.
Ejemplo para cargar las fuentes del sistema en un control ListBox
Dim La_Fuente As Integer 'Recorre las fuentes For La_Fuente = 0 To Screen.FontCount - 1 'Añade el nombre de la fuente al control List1.AddItem Screen.Fonts(La_Fuente) Next La_Fuente
Mediante 4 líneas de código tenemos un control ListBox que muestra el nombre de todas las fuentes del sistema.
Nota: Para poder obntener las fuentes pero de una impersora, se realiza igual que en el paso anterior , con la diferencia que en ves de usar el Objeto Screen, se usa el Objeto Printer.
Por ejemplo
Colocar un ComboBox en el formulario donde se listarán las impresoras instaladas, y en agregar un Control ListBox donde agregarán las fuentes
Código fuente en el formulario
Option Explicit Private Sub Combo1_Click() Ver_fuentes Combo1.ListIndex End Sub Private Sub Form_Load() Dim ObjPrinter As Printer ' Recorre la lista de impresoras instaladas _ en el sistema y agrega el nombre en el combo For Each ObjPrinter In Printers Combo1.AddItem ObjPrinter.DeviceName Next End Sub ' Enumera las fuentes en el ListBox de la _ impresora seleccionada en el Combo Sub Ver_fuentes(Impresora As String) ' Referencia a la impersora Set Printer = Printers(Impresora) Dim i As Integer List1.Clear ' Lista las fuentes soportadas de la impresora For i = 0 To Printer.FontCount - 1 List1.AddItem Printer.Fonts(i) Next End Sub
Listar las fuentes de windows y previsualizarlas
Con ClipBoard podemos trabajar con el portapapeles de windows, ya sea para establecer o recuperar datos del mismo.
Ejemplo:
Para recuperar el texto guardado en el portapapeles:
Dim cadena As String cadena = Clipboard.GetText MsgBox cadena
Con este otro ejemplo podemos grabar o asignar un texto en el portapapeles
Clipboard.SetText "cadena de texto a grabar o variable string"
Con el método Clear del objeto ClipBoard podemos borrar el contenido del portapapeles (no requiere ningún parámetro)
Clipboard.clear
Con la siguiente línea podemos copiar una imagen del portapapeles a un control picture, si es que la hay, usando el método Getdata del objeto Clipboard
Picture1.Picture = Clipboard.GetData
Lo siguiente copia una imagen cargada en un control de imagen al portapapeles, es decir hacer lo contrario:
Clipboard.SetData Picture1.Picture
Ejemplo para crear menúes y menúes contextuales o también llamados menú PopUp, que son aquellos que se despliegan con el botón derecho del mouse.
Casi todas las aplicaciones por mas pequeñas que sean, poseen un acceso a determinadas o casi todas las opciones de un programa por medio de un menú.
Si bien las opciones las podemos encontrar en la interface misma de la aplicación, ya sea por medio de botones, barras de herramientas etc.., nunca está demás que estén a mano por medio de un menú.
Visual Basic incorpora una herramienta llamada editor de menúes para poder crearlos
Nota: El editor de Manúes se encuentra en el menú herramientas y solo está disponible desde la vista diseño del formulario, es decir que si estás visualizando la ventana de código o un módulo de código deberás cerrarlas y dejar visible el formulario que estés diseñando para que la opción esté habilitada.
Los menúes de cabecera son los menúes principales que contienen otros submenues. Por ejemplo en el menú del internet explorer, el menú archivo es el menú de cabecera o de primer nivel, y las opciones internas de este (abrir, guardar, imprimir, cerrar, etc...) son los submenues que están en un nivel por debajo del menú archivo.
Crear un menú
El siguiente ejemplo consiste en un formulario que contiene solo un control label que nos mostrará una leyenda con el texto del menú que seleccionamos o presionamos.
El menú estará compuesto por 3 menues de cabecera, el primero llamado "Archivo", el segundo "Edición" y el último "Ayuda". A su vez cada menú tendrá los siguientes submenues:
El cuadro de diálogo del editor de menú de visual basic posee los siguientes campos para rellenar. Algunos son opcionales y otros son obligatorios, como la propiedad Caption y Name:
Pasos a seguir:
Private Sub mnuabrir_click()
End Sub
Ahora dentro del evento Click del menú colocamos lo siguiente para que la etiqueta muestre la propiedad caption del menu abrir al pulsar sobre el menú
Label1.Caption = mnuarchivo.Caption
Nota: cabe aclarar que estas rutinas las podemos invocar o llamar como cualquier otra rutina de código , por ejemplo en el caso anterior, por ejemplo si coloco esto en un botón se llamaría al procedimiento Click del menú y se ejecutaría el código.
Call mnuabrir_click
Esto es útil si tenemos una barra de herramientas, ya que no tendremos que escribir código 2 veces, y podemos usar un solo procedimiento haciendo una simple llamada al mismo
Los menues contextuales, esos que se despliegan cuando presionamos el botón derecho del mouse, son simples menues pero con la diferencia de que los mismos poseen la propiedad Visible en False, y luego se visualizan utilizando el método PopUpMenu
El método PopUpMenu , se encuentra disponible solo para los formularios.
Los parámetros de este método son los siguientes:
Nombreformulario.PopUpMenu "Elmenu", "flags", x , y, opcion
Si bien el menú PopUp lo podemos llamar en cualquier momento, lo mas común es utilizarlo y desplegarlo cuando el usuario presiona el botón derecho sobre un control, formulario etc...
Sabiendo esto , para desplegarlo por ejemplo cuando el usuario presiona el botón sobre un área del formulario, podemos utilizar el evento MouseUp o MouseDown del mismo y consultar la variable Button del procedimiento y mediante una estructura IF - Then comprobar si el botón que presionamos es el derecho , utilizando las constantes VbRightButton, vbLeftButton
Crear un menú llamado mnuContextual con la propiedad visible en False y pegar esta rutina en el formulario:
Private Sub form_mouseup(button As Integer, shift As Integer, x As Single, y As Single) ' Consultamos si el botón presionado es el derecho If button = vbRightButton Then ' Depliega el menú PopUP Me.PopupMenu mnucontextual End If End Sub
En el siguiente enlace hay 3 ejemplos con su código fuente que muestra como crear 2 menú y uno de estilo PopUp
Buscar en Recursos vb
Recursos visual basic - Buscar - Privacidad - Copyright © 2005 - 2009 - www.recursosvisualbasic.com.ar