cambios de código para gráficos

Upload: tei-aldo-leyva

Post on 02-Mar-2016

10 views

Category:

Documents


0 download

TRANSCRIPT

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 simpleEl 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 mtodoLine; 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 mtodoDrawLineque acepta un objetoPensy 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.0Private Sub Form_Paint() ' Draw a solid black line 200 twips from the top of the form. Line (0, 200) - (ScaleWidth, 200), vbBlackEnd SubVB' Visual BasicPrivate 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 puntosEl 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 propiedadDrawStyledetermina el aspecto de la lnea. El ejemplo de Visual Basic 2008 utiliza un objetoPeny establece la propiedadDashStylepara 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.0Private Sub Form_Paint() ' Draw a dotted line 200 twips from the top of the form. Me.DrawStyle = vbDot Line (0, 200) - (ScaleWidth, 200), vbBlackEnd SubVB' Visual BasicPrivate 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 lneaEl 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 propiedadDrawWidth. El ejemplo de Visual Basic 2008 utiliza la propiedadWidthdel objetoPens.' Visual Basic 6.0Private 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), vbBlackEnd SubVB' Visual BasicPrivate 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 crculoEl 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 mtodoCircle; 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 mtodoDrawEllipseque acepta un objetoPen, 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.0Private Sub Form_Paint() ' Draw a 1000 twip diameter red circle Circle (500, 500), 500, vbRedEnd SubVB' Visual BasicPrivate 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 propiedadesFillColoryFillStylejunto con el mtodoLine. Al llamar al mtodoLinecon el parmetroB, se dibuja un rectngulo.El ejemplo de Visual Basic 2008 utiliza el mtodoGraphics.Rectanglepara dibujar el contorno y el mtodoGraphics.FillRectangleque acepta un objetoBrushcomo argumento. En este ejemplo, se utilizan los controlesSolidBrushyHatchBrush.Nota:

En Visual Basic 6.0, la unidad de medida predeterminada son los twips; en Visual Basic 2008 son los pxeles.

' Visual Basic 6.0Private 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, BEnd SubVB' Visual BasicPrivate 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 formularioEl 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 mtodoPaintPicture. El ejemplo de Visual Basic 2008 utiliza el mtodoDrawImage.' Visual Basic 6.0Private Sub Form_Paint() ' Create a stdPicture object. Dim Pict1 As New stdPicture Pict1 = LoadPicture("C:\Windows\Greenstone.bmp") PaintPicture Pict1, 0, 0End SubVB' Visual BasicPrivate 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 formularioEl 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 mtodoPrint. El ejemplo de Visual Basic 2008 utiliza el mtodoDrawString.' Visual Basic 6.0Private Sub Form_Paint() Me.Font.Size = 24 Me.Font.Bold = True Me.ForeColor = vbRed Print "Hello World!"End SubVB' Visual BasicPrivate 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 cadenaEl 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 mtodosTextHeightyTextWidth. El ejemplo de Visual Basic 2008 utiliza el mtodoMeasureString, que devuelve una estructuraSizeF.' Visual Basic 6.0Private 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 SubVB' Visual BasicPrivate 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 pxelEl 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 mtodoPSet. El ejemplo de Visual Basic 2008 utiliza el mtodoDrawEllipsecon los parmetrosHeightyWidthestablecidos en1.Nota En Visual Basic 6.0, la unidad de medida predeterminada son los twips; en Visual Basic 2008 son los pxeles.' Visual Basic 6.0Private Sub Form_Paint() Me.DrawWidth = 1 PSet (1000, 1000), vbRedEnd SubVB' Visual BasicPrivate 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 pxelEl 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 mtodoPointpara recuperar el valor de color. El ejemplo de Visual Basic 2008 utiliza el mtodoGetPixel.Nota:

En Visual Basic 6.0, la unidad de medida predeterminada son los twips; en Visual Basic 2008 son los pxeles.

' Visual Basic 6.0Private 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, BEnd SubVB' Visual BasicPrivate 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