Está en la página 1de 7

Cambios de cdigo para grficos

Los siguientes ejemplos de cdigo muestran las diferencias entre las tcnicas de codificacin de Visual Basic 6.0 y Visual Basic 2008.

Dibujar una lnea simple


El cdigo siguiente muestra el dibujo de una lnea en un formulario en tiempo de ejecucin. En el ejemplo de Visual Basic 6.0, se utiliza el mtodo Line; acepta las coordenadas X e Y de los puntos de inicio y de fin, y, opcionalmente, un color como argumentos. El ejemplo de Visual Basic 2008 utiliza el mtodo DrawLine que acepta un objeto Pens y las coordenadas X e Y de los puntos inicial y final como argumentos.

Nota:

En Visual Basic 6.0, la unidad de medida predeterminada son los twips; en Visual Basic 2008 son los pxeles
' Visual Basic 6.0 Private Sub Form_Paint() ' Draw a solid black line 200 twips from the top of the form. Line (0, 200) - (ScaleWidth, 200), vbBlack End Sub VB ' Visual Basic Private Sub Form1_Paint(ByVal sender As Object, ByVal e _ As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint ' Draw a solid black line 25 pixels from the top of the form. e.Graphics.DrawLine(Pens.Black, 0, 25, Me.Width, 25) End Sub

Dibujar una lnea de puntos


El cdigo siguiente muestra el dibujo de una lnea de puntos en un formulario en tiempo de ejecucin. En el ejemplo de Visual Basic 6.0, la propiedad DrawStyle determina el aspecto de la lnea. El ejemplo de Visual Basic 2008 utiliza un objeto Pen y establece la propiedad DashStyle para determinar la apariencia.

Nota:

En Visual Basic 6.0, la unidad de medida predeterminada son los twips; en Visual Basic 2008 son los pxeles
' Visual Basic 6.0 Private Sub Form_Paint() ' Draw a dotted line 200 twips from the top of the form. Me.DrawStyle = vbDot Line (0, 200) - (ScaleWidth, 200), vbBlack

End Sub VB ' Visual Basic Private Sub Form1_Paint1(ByVal sender As Object, ByVal e As _ System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint ' Draw a dotted black line 25 pixels from the top of the form. Dim LPen As New System.Drawing.Pen(System.Drawing.Color.Black) LPen.DashStyle = Drawing2D.DashStyle.Dot e.Graphics.DrawLine(LPen, 0, 25, Me.Width, 25) End Sub

Controlar el grosor de la lnea


El cdigo siguiente muestra el dibujo de lneas de distintos grosores en un formulario en tiempo de ejecucin. En el ejemplo de Visual Basic 6.0, se utiliza la propiedad DrawWidth. El ejemplo de Visual Basic 2008 utiliza la propiedad Width del objeto Pens. ' Visual Basic 6.0 Private Sub Form_Paint() ' Draw a line with a thickness of 1 pixel. DrawWidth = 1 Line (0, 200)-(ScaleWidth, 200), vbBlack ' Draw a line with a thickness of 5 pixels. DrawWidth = 5 Line (0, 400)-(ScaleWidth, 400), vbBlack ' Draw a line with a thickness of 10 pixels. DrawWidth = 10 Line (0, 600)-(ScaleWidth, 600), vbBlack End Sub VB ' Visual Basic Private Sub Form1_Paint2(ByVal sender As Object, ByVal e As _ System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint ' Draw a line with a thickness of 1 pixel. Dim TPen As New System.Drawing.Pen(System.Drawing.Color.Black, 1) e.Graphics.DrawLine(TPen, 0, 25, Me.Width, 25) ' Draw a line with a thickness of 5 pixels. TPen.Width = 5 e.Graphics.DrawLine(TPen, 0, 50, Me.Width, 50) ' Draw a line with a thickness of 10 pixels. TPen.Width = 10 e.Graphics.DrawLine(TPen, 0, 75, Me.Width, 75) End Sub

Dibujar un crculo

El cdigo siguiente muestra el dibujo de un crculo en un formulario en tiempo de ejecucin. En el ejemplo de Visual Basic 6.0, se utiliza el mtodo Circle; acepta las coordenadas X e Y del punto central, el radio y, opcionalmente, un color como argumentos. El ejemplo de Visual Basic 2008 utiliza el mtodo DrawEllipse que acepta un objeto Pen, las coordenadas X e Y del ngulo superior izquierdo del rectngulo delimitador, el ancho y el alto como argumentos.

Nota:

En Visual Basic 6.0, la unidad de medida predeterminada son los twips; en Visual Basic 2008 son los pxeles
' Visual Basic 6.0 Private Sub Form_Paint() ' Draw a 1000 twip diameter red circle Circle (500, 500), 500, vbRed End Sub VB ' Visual Basic Private Sub Form1_Paint3(ByVal sender As Object, ByVal e As _ System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint ' Draw a 70 pixel diameter red circle. e.Graphics.DrawEllipse(Pens.Red, 0, 0, 70, 70) End Sub

Dibujar un rectngulo relleno.


El cdigo siguiente muestra el dibujo de dos rectngulos en un formulario en tiempo de ejecucin, uno con un relleno slido y el otro con un modelo sombreado. En el ejemplo de Visual Basic 6.0, se utilizan las propiedades FillColor y FillStyle junto con el mtodoLine. Al llamar al mtodo Line con el parmetro B, se dibuja un rectngulo. El ejemplo de Visual Basic 2008 utiliza el mtodo Graphics.Rectangle para dibujar el contorno y el mtodo Graphics.FillRectangle que acepta un objeto Brush como argumento. En este ejemplo, se utilizan los controles SolidBrush y HatchBrush.

Nota:

En Visual Basic 6.0, la unidad de medida predeterminada son los twips; en Visual Basic 2008 son los pxeles
' Visual Basic 6.0 Private Sub Form_Paint() ' Draw a solid red rectangle. FillColor = vbRed FillStyle = vbSolid Line (10, 10)- (1000, 500), vbRed, B ' Draw a rectangle filled with a crosshatch pattern. FillColor = vbBlack FillStyle = vbCross

Line (10, 500)- (1000, 1000), vbBlack, B End Sub VB ' Visual Basic Private Sub Form1_Paint4(ByVal sender As Object, ByVal e As _ System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint ' Draw a solid red rectangle. Dim SBrush As New System.Drawing.SolidBrush _ (System.Drawing.Color.Red) e.Graphics.DrawRectangle(Pens.Red, 2, 2, 70, 40) e.Graphics.FillRectangle(SBrush, 2, 2, 70, 40) ' Draw a rectangle filled with a crosshatch pattern. Dim HBrush As New System.Drawing.Drawing2D.HatchBrush( _ System.Drawing.Drawing2D.HatchStyle.Cross, _ System.Drawing.Color.Black, System.Drawing.Color.Transparent) e.Graphics.DrawRectangle(Pens.Black, 2, 40, 70, 40) e.Graphics.FillRectangle(HBrush, 2, 40, 70, 40) End Sub

Mostrar una imagen en un formulario


El cdigo siguiente muestra los mtodos de grficos para mostrar una imagen en un formulario en tiempo de ejecucin. El ejemplo de Visual Basic 6.0 utiliza el mtodo PaintPicture. El ejemplo de Visual Basic 2008 utiliza el mtodo DrawImage. ' Visual Basic 6.0 Private Sub Form_Paint() ' Create a stdPicture object. Dim Pict1 As New stdPicture Pict1 = LoadPicture("C:\Windows\Greenstone.bmp") PaintPicture Pict1, 0, 0 End Sub VB ' Visual Basic Private Sub Form1_Paint5(ByVal sender As Object, ByVal e As _ System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint ' Create a Bitmap object. Dim Pict1 As New Bitmap("C:\Windows\Greenstone.bmp") e.Graphics.DrawImage(Pict1, 0, 0) End Sub

Mostrar texto en un formulario

El cdigo siguiente indica los mtodos de grficos para mostrar una cadena de texto en un formulario en tiempo de ejecucin. El ejemplo de Visual Basic 6.0 utiliza el mtodo Print. El ejemplo de Visual Basic 2008 utiliza el mtodo DrawString. ' Visual Basic 6.0 Private Sub Form_Paint() Me.Font.Size = 24 Me.Font.Bold = True Me.ForeColor = vbRed Print "Hello World!" End Sub VB ' Visual Basic Private Sub Form1_Paint6(ByVal sender As Object, ByVal e As _ System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint Dim TextFont As New System.Drawing.Font("Arial", 24, FontStyle.Bold) Dim TextBrush As New System.Drawing.SolidBrush(System.Drawing.Color.Red) e.Graphics.DrawString("Hello World!", TextFont, TextBrush, 10, 10) TextFont.Dispose() TextBrush.Dispose() End Sub

Determinar el alto y ancho de una cadena


El cdigo siguiente muestra los mtodos de grficos para determinar el tamao de una cadena en un formulario en tiempo de ejecucin y dibujar luego un rectngulo alrededor de ella. El ejemplo de Visual Basic 6.0 utiliza los mtodos TextHeight y TextWidth. El ejemplo de Visual Basic 2008 utiliza el mtodo MeasureString, que devuelve una estructura SizeF. ' Visual Basic 6.0 Private Sub Form_Paint() Me.Font.Size = 24 Me.Font.Bold = True Me.ForeColor = vbRed Print "Hello World!" Line (0, 0)-(TextWidth("Hello World!"), _ TextHeight("Hello World!")), vbBlack, B End Sub VB ' Visual Basic Private Sub Form1_Paint7(ByVal sender As Object, ByVal e As _ System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint Dim TextFont As New System.Drawing.Font("Arial", 24, FontStyle.Bold) Dim TextBrush As New System.Drawing.SolidBrush(System.Drawing.Color.Red) e.Graphics.DrawString("Hello World!", TextFont, TextBrush, 10, 10) Dim TextSize As New System.Drawing.SizeF

TextSize = e.Graphics.MeasureString("Hello World!", TextFont) e.Graphics.DrawRectangle(Pens.Black, 10, 10, TextSize.Width, TextSize.Height) TextFont.Dispose() TextBrush.Dispose() End Sub

Dibujar un nico pxel


El ejemplo siguiente muestra los mtodos de grficos para cambiar el color de un nico pxel en un formulario en tiempo de ejecucin. El ejemplo de Visual Basic 6.0 utiliza el mtodo PSet. El ejemplo de Visual Basic 2008 utiliza el mtodo DrawEllipse con los parmetros Height y Width establecidos en 1. Nota En Visual Basic 6.0, la unidad de medida predeterminada son los twips; en Visual Basic 2008 son los pxeles. ' Visual Basic 6.0 Private Sub Form_Paint() Me.DrawWidth = 1 PSet (1000, 1000), vbRed End Sub VB ' Visual Basic Private Sub Form1_Paint8(ByVal sender As Object, ByVal e As _ System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint e.Graphics.DrawEllipse(Pens.Red, 70, 70, 1, 1) End Sub

Determinar el color de un nico pxel


El cdigo siguiente muestra los mtodos de grficos para determinar el color de un pxel en una ubicacin especificada en una imagen de un formulario en tiempo de ejecucin y pintar luego un rectngulo relleno de dicho color. El ejemplo de Visual Basic 6.0 utiliza el mtodo Point para recuperar el valor de color. El ejemplo de Visual Basic 2008 utiliza el mtodo GetPixel.

Nota:

En Visual Basic 6.0, la unidad de medida predeterminada son los twips; en Visual Basic 2008 son los pxeles
' Visual Basic 6.0 Private Sub Form_Paint() Dim PixelColor As Long Picture1.Picture = LoadPicture("C:\Windows\Greenstone.bmp") PixelColor = Picture1.Point(10, 10) FillColor = PixelColor Line (0, 0)-(100, 500), PixelColor, B End Sub

VB ' Visual Basic Private Sub Form1_Paint9(ByVal sender As Object, ByVal e As _ System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint Dim Pict1 As New Bitmap("C:\Windows\Greenstone.bmp") Picture1.Image = Pict1 Dim PixelColor As Color = Pict1.GetPixel(4, 4) Dim PixelBrush As New SolidBrush(PixelColor) e.Graphics.FillRectangle(PixelBrush, 0, 0, 100, 100) End Sub

También podría gustarte