Archivo del blog

miércoles, 2 de marzo de 2011

Gráficos

En Visual Basic .NET no existen los controles de dibujo pues la novedad será emplear los servicios de gráficos GDI+ a través del espacio de nombres System.Drawing
Instrucciones como Circle, Line y PSet, son sustituidas por los métodos DrawEllipse, DrawLine y la estructura Point de la clase System.Drwaing.Graphics.
El sistemas de coordenas predeterminado de Visual Basic .NET utiliza píxeles en lugar de Twips
En Visual Basic .NET los controles no tienen un método Move, pero es posible desplazarlos rápidamente al actualizar las propiedades Left, Top o Location de los controles o también utilizando el método SetBounds.
Las propiedades DragIcon y DragMode ya no están disponibles en Visual Basic .NET aunque el evento DragDrop continua.
Visual Basic .NET soporta más tipos de formato para imagenes, el espacio de nombres System.Drawing.Imaging incluye funciones que trabajan con los formatos siguientes:
BMP
EMF
EXIF
GIF
Icon
JPEG
MemoryBMP
PNG
TIFF
WMF
A través de la utilización de funciones GDI+ del espacio de nombres System.Drawing que es una nueva API (Interfaz de Programación de Aplicaiones) será posible crear gráficos.

Establecer el objeto de inicio

También en Visual Basic .NET es posible establecer el punto de inicio de la aplicación, ya que puede contener múltiples formularios es necesario especificar con cual iniciara la aplicación o también puede contar con múltiples procedimientos por lo que también podrá definir uno de ellos como punto de partida.
Para configurar el punto de inicio seleccione Project/Properties y especique el objeto de inicio (Startup object) que puede ser un formulario o procedimiento.
Si requiere de una aplicación Visual Basic .NET sin interfaz gráfica, es posible crear una aplicación consola la cual procesa datos de entrada y genera salidas mediante una consola de línea de comandos.

Creación de controles en tiempo de ejecución

En Visual Basic .NET, es posible agregar controles en tiempo de ejecución, siguiendo una sintaxis similar a esta:
Dim btnOK As New Button
btnOK.Text = "OK"
btnOK.Location = New Point(312, 150)
Me.Controls.Add(btnOK)

Tenga cuidado de que sus controles al momento de agregarlos no queden debajo de otros controles ocultandolos ante la mirada del usuario.
Existen nuevas propiedades para los controles que hacen posible manejar automáticamente su posición Dock y Anchor, por ejemplo el valor de la propiedad Dock puede ser Bottom con lo cual el control se ajusta al tamaño del formulario y queda posicionado en la parte inferior de la pantalla:
btnDock.Dock = DockStyle.Bottom

Otros posibles valores son:
DockStyle.Top
DockStyle.Fill
DockStyle.Left
DockStyle.Right
DockStyle.None, para anular el funcionamiento de los valores anteriores

Automatización

La automatización (automation) es una tecnología basada en el estándar de interoperabilidad denominado Modelo de Objetos Componentes (COM).
El objetivo de automatización es utilizar las funciones de una aplicación en otra aplicación.
Las aplicaciones basadas en Windows que exponen sus objetos se denominan aplicaciones objeto o servidoras y los programas que utilizan estos objetos se denominan aplicaciones controladoras o clientes.
Por ejemplo si desea utilizar Excel desde Visual Basic .NET :

Agregue una referencia excel (Project/Add Reference/Microsoft Excel versión Object Library)
Declare una variable de tipo objeto Excel
§ Dim xlsApp As Excel.Application
§ xlsApp = CType(CreateObject("Excel.Application"), Excel.Application)

Nota: si no agrega la referencia entonces no tendrá disponibles las referencias del objeto Excel. En Visual Basic 6 era posible emplear la técnica enlace en tiempo de ejecución en la cual se declaraba una variable de tipo objeto y en tiempo de ejecución se asignaba un tipo de aplicación específico, esta técnica ya no se recomienda.
Lo recomendable es emplear la técnica de enlace en tiempo de compilación donde se asigna en tiempo de diseño un tipo a las variables que almacenan los objetos Automatización, para ser enlazados a los datos durante la compilación.
A través de la función CType es el mecanismo que durante la compilación devuelve el tipo de aplicación específica a la variable de aplicación.

Ejemplo:
Dim xlsApp As Excel.Application
Dim xlsBook As Excel.Workbook
Dim xlsSheet As Excel.Worksheet
Dim sFile As String

xlsApp = CType(CreateObject("Excel.Application"), Excel.Application)
xlsBook = CType(xlsApp.Workbooks.Add, Excel.Workbook)
xlsSheet = CType(xlsBook.Worksheets(1), Excel.Worksheet)

xlsSheet.Cells(1, 1) = "www"
xlsSheet.Cells(1, 2) = "informatica"
xlsSheet.Cells(1, 3) = "com"
xlsSheet.Cells(1, 4) = "ar"

xlsSheet.Range("B1").Font.Bold = True
xlsSheet.Application.Visible = False
sFile = "c:prueba" & Now.Day & Now.Month & Now.Year
& Now.Hour & Now.Minute & Now.Second & ".xls"
xlsSheet.SaveAs(sFile)
xlsSheet = Nothing
xlsBook.Close()
xlsBook = Nothing
xlsApp.Quit()
xlsApp = Nothing
MsgBox("Se ha creado el archivo satisfactoriamente: " & sFile)