[ Igiboy @ 19.04.2005. 09:48 ] @
Za crtanje po formi moze da se koristi sledeci kod:
Code:

Dim PaintNow As Boolean
Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As 
Single, Y As Single)
   PaintNow = True   ' Enable painting.
End Sub

Private Sub Form_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)
   PaintNow = False   ' Disable painting.
End Sub

Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)
   If PaintNow Then
      PSet (X, Y)      ' Draw a point.
   End If
End Sub

Private Sub Form_Load ()
   DrawWidth = 10      ' Use wider brush.
   ForeColor = RGB(0, 0, 255)   ' Set drawing color.
End Sub


Ali koji kod da koristim kada zelim nesto da nacrtam na slici (Image)?
Potrebno mi je samo da vucem linije po slici (na slici rasporedim igrace i onda pomocu linija i
strelica crtam formacije i taktike tj. ko gde treba da trci i da se krece).
Probao sam da umesto Form stavim Image1 ali ne radi.
I jos jedno pitanje: kada povucem liniju na slici, i ako nisam dobro povukao kako onda to da obrisem pa da
krenem ispocetka (a da pri tome ne pokvarim sliku)?

[Shadowed: dodati [code] tagovi.]

[Ovu poruku je menjao Shadowed dana 19.04.2005. u 16:20 GMT+1]
[ mladenovicz @ 19.04.2005. 09:57 ] @
Po Image controli ne mzoes da crtas jer nema hDC. Koristi picture box kontrolu.
[ Igiboy @ 19.04.2005. 15:43 ] @
Ali na koji nacin? Koji kod da koristim za Picture1?
Ako umesto Form u gornjem kodu napisem Picture1 nista se ne desava.
Nista se ne iscrtava na Picture1.
[ mladenovicz @ 19.04.2005. 15:55 ] @
stavi AutoRedraw (za pic box) na True
[ Igiboy @ 19.04.2005. 20:37 ] @
To sam probao vec ranije ali ne pomaze.
Problem je sto kad drzim levi taster misa i pomeram ga po slici, umesto da crta po slici ono crta po formi.
[ vujkev @ 19.04.2005. 20:58 ] @
Jesi li promenio

ovo

Code:

Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)
   If PaintNow Then
      PSet (X, Y)      ' Draw a point.
   End If
End Sub


u

Code:
Private Sub Picture1_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)
   If PaintNow Then
      Picture1.PSet (X, Y)      ' Draw a point.
   End If
End Sub


naravno treba da promenis i MouseDown i sve ostalo da radi na Picture1 objekat
[ Aleksandar Ružičić @ 19.04.2005. 22:11 ] @
Zazr ti nije jednostavnije (krace) da u MouseMove proveravas da li je pritisnut neki taster nego da koristis PaintNow?
umesto MouseDown i MouseUp mozes sve da ubacis u MouseMove:
Code:

Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)
   If Button=1 Then
      PSet (X, Y)      ' Draw a point.
   End If
End Sub


Button=1 znaci da je pritisnut levi taster misa
Button=2 znaci da je pritisnut desni taster misa
ako je button 0 onda ni jedan taster nije pritisnut...

poz
[ Igiboy @ 20.04.2005. 13:19 ] @
Hvala svima na odgovorima.
Jos jedno pitanje: kada povucem liniju na slici, i ako nisam dobro povukao kako onda to da obrisem pa da
krenem ispocetka (a da pri tome ne pokvarim sliku)?
Da li nesto treba podesiti u DrawMode, DrawStyle ili FillStyle?
[ Shadowed @ 20.04.2005. 14:06 ] @
Ako ti je .AutoRedraw postavljen na False mozes koristiti .Refresh metod. Tada vracas pocetnu sliku (pre bilo kakvih srtanja po njoj).
Ako ti je .AutoRedraw postavljen na True ili hoces da imas Undo kao u programima za obradu slika onda moras da cuvas sliku pre svakog crtanja. Od toga koliko slika cuvas toliko ces moci koraka da vracas. Najjednostavnija varijanta ti je da u MouseDown sacuvas trenutnu sliku u kolekciju.
Druga metoda bi bila manje zahtevna za RAM ali je komplikavanija za pravljanje a to je da pa mtis samo one pixel-e koje si menjao. Tu bi morao da pre promene pixela u MouseMove sacuvas koordinate i staru boju tog pixel-a.
[ Igiboy @ 21.04.2005. 10:04 ] @
Na koji nacin da sacuvam trenutnu sliku?
Ako imam sliku (picture1) i na njoj povucem neku liniju, kako onda tu sliku da sacuvam?
Ako hocu da tu sliku privremeno dodelim nekoj drugoj slici(picture2) i ako napisem
picture2.picture=picture1.picture, tada picture2 je slika bez onih mojih linija.
Kako zapamtiti sliku ako je po njoj nesto nacrtano?
[ mladenovicz @ 21.04.2005. 10:10 ] @
Code:

Set Picture2.Picture = Picture1.Image
[ Igiboy @ 21.04.2005. 14:54 ] @
Nista se ne postize tim kodom !
U picture2 se pojavi originalna slika bez promena koje su izvrsene u
picture1.
[ mladenovicz @ 21.04.2005. 15:06 ] @
Ako si za oba picture boxa stavio AutoRedraw na True mora da radi
[ Igiboy @ 21.04.2005. 15:50 ] @
Moja greska. Zaboravi sam da u picture2 podesim AutoRedraw na True.
Mnogo hvala na pomoci.
Veliki pozdrav od Igiboy-a.