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 Sub
Aihe on jo aika vanha, joten et voi enää vastata siihen.