Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: kuvaan viivan ja tekstin piirtoa

Sivun loppuun

Puoliväkisten [31.01.2009 20:59:14]

#

Hei taas
Puoliväkisten pitää taas yrittää pahan flunssan jälkeen :)

eli ongelmana on tekstin saanti kuvaan, alla oleva tekee viivat ihan ok mutta en saa tekstiä lisättyä kuvaa, tai saan mutta sitten viivat katoavat :D

' Dim teksti As New Font("Times New Roman", 24, FontStyle.Bold, GraphicsUnit.Pixel)

       Dim viivaA, viivaB, viivaC, viivaA1, viivaB1, viivaC1, viivaA2, viivaB2, viivaC2 As System.Drawing.Graphics
       Dim viivaL1, viivaL2, viivaL3 As System.Drawing.Graphics
       Dim v_L1A1, v_L1A2, v_L1A3, v_L2A3, v_L3A3 As Integer

       Dim väriL1 As New System.Drawing.Pen(System.Drawing.Color.Black, 3)
       Dim väriL2 As New System.Drawing.Pen(System.Drawing.Color.Red, 3)
       Dim väriL3 As New System.Drawing.Pen(System.Drawing.Color.Yellow, 3)
       ' Dim teksti As System.Drawing.Graphics
       Dim drawStringL1 As [String] = "L1"   ' Create string to draw.
       Dim drawStringL2 As [String] = "L2"   ' Create string to draw.
       Dim drawStringL3 As [String] = "L3"   ' Create string to draw.
       'Dim teksti As Graphics = Graphics.FromImage(PictureBox1.Image)

       Dim x As Single = 130 ' määritetään tekstin sivusuunta
       Dim drawFont As New Font("Arial", 14)   ' Create font and brush.
       Dim drawBrush As New SolidBrush(Color.Red)


       v_L1A1 = tulosteylapuoli.TxtTaittoL1A1.Text / 3
       v_L1A2 = tulosteylapuoli.TxtTaittoL1A2.Text / 3
       v_L1A3 = tulosteylapuoli.TxtTaittoL1A3.Text / 3
       v_L2A3 = tulosteylapuoli.TxtTaittoL2A3.Text / 3
       v_L3A3 = tulosteylapuoli.TxtTaittoL3A3.Text / 3
       viivaA = PictureBox1.CreateGraphics
       viivaB = PictureBox1.CreateGraphics
       viivaC = PictureBox1.CreateGraphics
       viivaL2 = PictureBox1.CreateGraphics
       viivaL3 = PictureBox1.CreateGraphics

       If Kiskolaskenta.Kiskonvalinta.KojeenValinta.SelectedIndex = 0 Then
           If Kiskolaskenta.Kiskonvalinta.KojeenYläpuoli.SelectedIndex = 0 Then

               viivaB.DrawLine(väriL1, 150, 150 - v_L1A3, 150 + v_L1A2, 150 - v_L1A3) 'sivusiirto
               viivaC.DrawLine(väriL1, 150 + v_L1A2, 150 - v_L1A3, 150 + v_L1A2, 150 + v_L1A1) 'Kojeelle alaspäin
               viivaL3.DrawLine(väriL3, 150, 150 - v_L1A3, 150, 150 + v_L3A3) ' Vaiheen 3 piirto alapäin
               viivaL2.DrawLine(väriL2, 150, 150 - v_L1A3, 150, 150 + v_L2A3) 'Vaiheen 2 piirto alaspäin
               viivaA.DrawLine(väriL1, 150, 150 - v_L1A3, 150, 150 + v_L1A3) 'Vaiheen L1 piirto alaspäin


               Dim y As Single = 150 + v_L1A3              ' määritetään tekstin korkeus saadulla tuloksella
               'teksti.DrawString(drawStringL1, drawFont, drawBrush, x, y) ' kuvan piirto


           End If
       End If

Eli jotain on jonkin verran pielessä

Gaxx [31.01.2009 21:13:16]

#

Sen mitä visual basiceista muistan niin taitaa onnistua siten, että tulostat ensin tekstin ja sitten piirrät viivat. Mitään varmuuta tosin ei ole.

groovyb [31.01.2009 22:03:36]

#

mitäs sähköcadiä sitä oikee viritellää? :)

neau33 [01.02.2009 06:00:11]

#

Heippa taas Puoliväkisten!

vääntele itsellesi sopivaksi...

Imports Sytem.Drawing
Imports System.Drawing.Imaging

'...
Friend x1 As Single = 0
Friend y1 As Single = 0
Friend x2 As Single = 0
Friend y2 As Single = 0
Friend paksuus As Single = 0
Friend väri As Color = Nothing
Frinnd teksti As String = String.Empty

'...
Private Sub Button1_Click(sender As System.Object, _
e As System.EventArgs) Handles Button1.Click

   If PictureBox1.Image Is Nothing Then
      PictureBox1.BackColor = Color.White
      UusiKuva(PictureBox1)
   End If

   For i As Integer = 1 To 2

      Select Case i
         Case 1
      	    x1 = 50: y1 = 100: x2 = 200
      	    y2 = 100: paksuus = 1.2
      	    väri = Color.Violet
      	    ViivaKuvaan(PictureBox1.Image, _
      	    New Pen(väri, paksuus), x1, y1, x2, y2)
         Case 2
      	    x1 = 50: y1 = 125: x2 = 200
      	    y2 = 125: paksuus = 2.5
      	    väri = Color.Green
      	    ViivaKuvaan(PictureBox1.Image, _
      	    New Pen(väri, paksuus), x1, y1, x2, y2)
      End Select

   Next

   teksti = "Jotain tekstiä"

   TextiKuvaan(PictureBox1.Image, teksti, _
   New Font("Times New Roman", 24, _
   FontStyle.Bold, GraphicsUnit.Pixel), _
   New SolidBrush(Color.Blue), _
   New Point(50, 100))

End Sub

Private Sub UusiKuva(ByVal box As Object)

   Dim leveys As Integer = box.Width
   Dim korkeus As Integer = box.Height
   Dim kuva As New Bitmap(leveys, korkeus)
   Dim kuvaus As Graphics = Graphics.FromImage(kuva)
   Dim xplus As Single = _
   (Me.Width - Me.ClientRectangle.Width) / 2
   Dim yplus As Single = _
   (Me.Height - Me.ClientRectangle.Height) - xplus
   Dim x As Integer = Me.Left + xplus + box.left
   Dim y As Integer = Me.Top + yplus + box.Top
   kuvaus.CopyFromScreen(New Point(x, y), _
   New Point(0, 0), New Size(box.Width, box.Height))
   box.Image = kuva

End Sub

Private Sub ViivaKuvaan(ByVal kuva As Image, _
ByVal kynä As Pen, ByVal x1 As Single, _
ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single)

   Dim Graphic As Graphics = _
   Graphics.FromImage(kuva)
   Graphic.DrawLine(kynä, x1, y1, x2, y2)
   pictureBox1.Image = kuva

End Sub

Private Sub TextiKuvaan(ByVal kuva As Image, _
ByVal teksti As String, ByVal fontti As Font, _
ByVal suti As Brush, ByVal paikka As Point)

   Dim Graphic As Graphics = Graphics.FromImage(kuva)
   Graphic.DrawString(teksti, fontti, suti, paikka)
   pictureBox1.Image = kuva

End Sub

Puoliväkisten [01.02.2009 16:52:24]

#

groovyb kirjoitti:

mitäs sähköcadiä sitä oikee viritellää? :)

no ei ihan cadiä mutta sähkökeskuksiin liityvää lasketaohjelmaa kuparikiskoille :D

groovyb [01.02.2009 23:31:49]

#

jaa että montakos johdonsuojakatkaisijaa mahtuu pätkään :)

tuosta tuli mieleen että itse käytän Kymdatan softaa Cads Electric, ja siinä on ihan näppärä sähkökaapin mallinnus 3d:nä. lätkii vaan oikeat mitat ja sen kun tunkee palikat oikeilla mitoilla ja kourut sisään ja tarkistaa mahtuuko kaikki. ja saa vielä hienoja lisäyksiä sähkökuviin :D

Puoliväkisten [02.02.2009 18:11:25]

#

groovyb kirjoitti:

jaa että montakos johdonsuojakatkaisijaa mahtuu pätkään :)

tuosta tuli mieleen että itse käytän Kymdatan softaa Cads Electric, ja siinä on ihan näppärä sähkökaapin mallinnus 3d:nä. lätkii vaan oikeat mitat ja sen kun tunkee palikat oikeilla mitoilla ja kourut sisään ja tarkistaa mahtuuko kaikki. ja saa vielä hienoja lisäyksiä sähkökuviin :D

No nyt on pakko sanoa sen verran että työseni piirrän cadsillä myös. käytössä keskuslayout, piirikaaviot ja pääkaavio softat

groovyb [02.02.2009 21:55:46]

#

samat myös itsellä, plus logiikat , tuo 3d mallinnushärpäke sekä taulukoinnit.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta