Ohjelman kuuluisi piirtää aivan tavallinen viiva.
Ongelmana on että viiva piirtyy koko ajan siihen kohtaa missä kursori on.
Tuo on vielä helppo korjata mutta käyttäjän kuuluisi nähdä mistä kohdasta mihin kohtaan viiva piirretään.
Jos ette ymmärrä avatkaa paintti ja piirtäkää viiva!
Tässä olisi koodi:
'Muuttujat kursorin kohdalle Dim KohtaX Dim KohtaY 'Muuttujat väriarvoille Dim R Dim G Dim B 'Muuttujat viivan piirtoa varten Dim Viiva1X Dim Viiva1Y Dim Viiva2X Dim Viiva2Y 'Muuttujat piirto työkaluille Dim Viiva As Boolean Dim Ympyrä As Boolean Dim Kynä As Boolean Private Sub Command1_Click() End Sub Private Sub Command2_Click() Viiva = True Kynä = False End Sub Private Sub MnuPoistuItem_Click() End End Sub Private Sub Pencil_Click() Kynä = True Viiva = False End Sub Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Jos kynä on valittuna voidaan piirtää If Kynä = True Then Picture1.PSet (KohtaX, KohtaY), RGB(0, 0, 0) End If 'Asetetaan viivan aloitus kordinaatit If Viiva = True And Button = 1 Then Viiva1X = KohtaX Viiva1Y = KohtaY End If End Sub Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Siirretään hiiren kursorin kohta muuttujiin KohtaX = X KohtaY = Y 'Jos Hiiren vasemman puoleinen nappi on pohjassa ja kynä on valittuna 'voidaan piirtää If Kynä = True And Button = 1 Then Picture1.PSet (KohtaX, KohtaY), RGB(0, 0, 0) End If 'Näyetään käyttäjälle mistä kohdasta mihin kohtaan viiva piirtyisi If Viiva = True And Button = 1 Then Picture1.Line (Viiva1X, Viiva1Y)-(KohtaX, KohtaY), RGB(0, 0, 0) End If End Sub Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Piirretään viiva If Viiva = True And Button = 1 Then Viiva2X = KohtaX Viiva2Y = KohtaY Picture1.Line (Viiva1X, Viiva1Y)-(Viiva2X, Viiva2Y), RGB(0, 0, 0) End If End Sub
tarvitsee pictureboxin ja kaksi command buttonia.
Koitas tätä. mulla oli sattumalta valmiina
Dim X0, Y0 As Integer 'alkupiste
Dim X1, Y1 As Integer 'kuminauhaviivan päätepiste
Dim Tila As Byte 'piirtotila
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Select Case Tila 'haaraudutaan tila-muuttujan mukaan
Case 0
  If Button = 1 Then 'vasen painike
    DrawMode = 13
    PSet (X, Y) 'aloituspiste
    X0 = X: Y0 = Y 'tallennetaan koordinaatit
    Tila = 1 'aloitustila
  End If
Case 2
  Line (X0, Y0)-(X1, Y1), &HFFFF& 'pyyhitään kuminauhaviiva
  If Button = 2 Then 'piirron lopetus
    Tila = 0
    Exit Sub 'poistutaan
  Else
    DrawMode = 13
    Line (X0, Y0)-(X, Y) 'piirretään viiva
    X0 = X: Y0 = Y 'tallennetaan koordinaatit
  End If
End Select
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Select Case Tila 'haaraudutaan tila-muuttujan mukaan
Case 0
  Exit Sub 'ei tehdä mittää
Case 1, 2 'alkutila
  If Button = 0 Then 'piirretään kuminauhaviiva
    DrawMode = 7
    If Tila = 2 Then 'pyyhitään ed. viiva
      Line (X0, Y0)-(X1, Y1), &HFFFF&
    End If
    Line (X0, Y0)-(X, Y), &HFFFF& 'uusi kuminauhaviiva
    X1 = X: Y1 = Y 'tallennetaan koordinaatit
    Tila = 2 'kuminauhatila
  Else 'piirretään jatkuvaa käyrää
    DrawMode = 13
    Line -(X, Y)
  End If 'if-rakenteen lopetus
End Select 'Select Case-rakenteen lopetus
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
  Line -(X, Y) 'viivan piirto
  X0 = X: Y0 = Y: 'tallennetaan koordinaatit
  Tila = 1
End If
End SubAihe on jo aika vanha, joten et voi enää vastata siihen.