Mietin tuossa että jos teen sellasen aika beisikki puzzlen.
Mutta tössäs jo ennenkuin kerkes edes alottaa :D
Pitäs saada siirrettyä kuvaa hiirellä. Eli mulla ois picture tai image boxissa kuva ja kun otan siitä kiinni niin voin siirtää sen kuvan mihin vaan.
Onnistuuhan se tehdä kun kuunnellaan hiiren siaintia esim. hiiren matkamittari -ohjelmalla, ja siitä pukataan dataa picture1.Top:iin ja Picture1.Left:iin
Mutta eikö todella ole yksinkertaisempaa tapaa saada vain kuva liikkeelle...
Edit. Eiku sori
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Picture1.Top = Y Picture1.Left = X End Sub
Vai tarkoititko enemmänkin tällaista?
' Picture1.DragMode on oltava 1 - Automatic Dim hx As Integer, hy As Integer Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) Source.Left = X - hx Source.Top = Y - hy End Sub Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) hx = X hy = Y End Sub
Jees... en ajatellu tossa omassa koodissa noin pitkälle... vaan pointti periaatteessa tuossa koodissa oli saada hiiren siaintia selville.
Tossa sun koodissa on viellä yks "ongelma". Jos hiirellä nappaa kiinni kuvan keskeltä, niin hiiri pitää siirtää kuvan ääriviivojen ulkopuolelle ennenkuin kuva siirtyy löystäseeä hiiren nappi. Ymmärsitkö mitä koitin selvittää?
Mutta en kyllä ole sitä itekkään ratkassu.
Totta puhut, mutta tämä lisäys korjaa asian:
Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single) Source.Left = Source.Left + X - hx Source.Top = Source.Top + Y - hy End Sub
Viellä jos ois silleen että heti kun nappaan kuvasta kiinni, niin kuva lähtee heti liikkumaan, eli heti jos liikutan hiirtä 5 pikseliä ylöspäin niin kuva liikku 5 ylöspäin, eikä vasta sitten kun löysään hiiren....
Heh. kokoajan keksii uutta ratkottavaa...
Jotenki tuntuu että toi on jo vaikeampi
Siirtyy näin:
Dim X0 As Single, Y0 As Single Dim L As Single, T As Single Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) X0 = X: Y0 = Y T = Picture1.Top L = Picture1.Left End Sub Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 0 Then Exit Sub L = L + X - X0 T = T + Y - Y0 Picture1.Move L, T End Sub
ScaleMode sama Picture1:llä ja formilla (Pixel).
Jepii, tuon ratkasin onneks itte pukkusen ennen kun luin ton sun koodin... mutta kiitti kuiteski!
Aihe on jo aika vanha, joten et voi enää vastata siihen.