Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    60

    Picture Draw Visual Basic 6.0

    Salve a tutti ho un problema con questo programmino.. praticamente sto creando come base iniziale del programma una picture box sulla quale posso disegnare ciò che voglio con il mouse.. il codice che ho usato fin ora è questo
    codice:
    Dim Drawing As Boolean 
     Private Sub Form_Load() 
    Drawing = False 
    End Sub   
    Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
     Drawing = True 
    End Sub   
    Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
     If Drawing = True Then Picture1.DrawWidth = 9 Picture1.ForeColor = RGB(VScrollRed, VScrollGreen, VScrollBlue)
     Picture1.PSet (X, Y) 
    End If 
    End Sub  
    Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) 
    Drawing = False 
    End Sub
    ma quando faccio una prova quando vado troppo veloce col mouse succede questo..

    si creano dei puntini invece che una linea continua.. come posso risolvere il problema? grazie in anticipo.. uso visual basic 6 su windows xp =)
    emik

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Sposta questo codice :
    codice:
    Picture1.DrawWidth = 9 
    Picture1.ForeColor = RGB(VScrollRed, VScrollGreen, VScrollBlue)
    nell'evento MouseDown

    E' assurdo impostare queste proprietà OGNI volte che muovi il mouse, è inutile perchè mentre lo muovi esse non possono variare, con lo svantaggio di appesantire l'esecuzione dell'evento.


    Inoltre, prova ad inserire un
    DoEvents

    dopo la riga:
    Picture1.PSet (X, Y)



  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    60
    grazie della risposta, ma il problema non si risolve..
    ora il codice è questo

    codice:
    Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 
    Drawing = True 
     Picture1.DrawWidth = 9 
    Picture1.ForeColor = RGB(VScrollRed, VScrollGreen, VScrollBlue) 
     End Sub  
     Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 
    If Drawing = True Then 
    DoEvents 
    Picture1.PSet (X, Y) 
    End If
     End Sub 
     Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) 
    Drawing = False 
    End Sub
    ma non cambia niente.. c'è qualcuno che sa aiutarmi?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da emik

    ma non cambia niente.. c'è qualcuno che sa aiutarmi?
    Prova così

    codice:
    Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Drawing = True
        Picture1.DrawWidth = 9
        Picture1.ForeColor = RGB(VScrollRed, VScrollGreen, VScrollBlue)
        Picture1.PSet (X, Y)
    End Sub
    
    Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        If Drawing = True Then Picture1.Line -(X, Y)
    End Sub
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    60
    perfetto oregon!! grazie di essere stato cosi preciso.. davvero grazie.. il codice giusto è quello di oregon =)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.