elikkä miten saan pelittämään neliön siirtelyn?
Esimerkiksi siten, että teet universaalin muuttujan (esim. loodan_nappi_pohjassa As Boolean), laitat objektin OnMouseDown-subbiin koodin jolla se laitetaan todeksi (True) ja OnMouseDown:iin ko. muuttujan asettamisen falseksi.
Liikuttelun voi hoitaa vaikka timerilla siten, että se tarkistaa onko muuttuja tosi vai ei (jos se on siis tosi, niin hiiri on objektin päällä nappi pohjassa) ja jos on, niin muutataan objektin koordinaatteja hiiren mukaisiksi (hiiren koord. saat vaikka Formin OnMouseMove-subista).
öö.. koodia :D pls.
Laita liikuteltavan kontrollin DragMode-ominaisuuden arvoksi 1 - Automatic. Sitten kirjoita seuraavantapainen koodi (tässä tapauksessa kontrolli on Picture1):
Dim px As Single, py As Single Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) 'liikutetaan kontrollia pudotuskohtaan Source.Move X - px, Y - py End Sub Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 'pistetään talteen tarttumiskohta px = X py = Y End Sub
siis miten tuo DragMode laitetaan?
Varmasti tiedät ominaisuuslistan, josta valitaan kontrollin nimi, siinä näkyvä teksti, fontti, väri jne. DragMode löytyy myös tältä listalta (jos kontrollilla sellainen ominaisuus on).
ei sitä ole siellä ominaisuus listalla
jaa.. se on vain tuolla picturebox:lla kun yritin saada sitä Shape:na
Kyllä on, poikkeuksena seuraavat kontrollit: Line, Shape, Timer.
onko mahdollista saada pelkkä shape liikkumaan?
Niin, sanokaas miksei Shapeihin ole laitettu mahdolliseksi Click-proseduria, eikä paljon muutakaan?
No shapea ei ole tarkoitettu Clickattavaksi.
Voithan tietysti itse tehdä siitä ActiveX komponentin(ocx), johon lisäät Click-eventin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.