KIELI VB
Jos tällä koodilla saa liikkumaan yhen ukon:
Picture (tai imagebox).move x,y
Niin kun vaikka painaa A kirjainta niin toinen ukko2 liikku ukko1 tilalla?
________________________________________________
OLKAA KILTTEJÄ JA KERTOKAA
:O
Hyvä yritys...
lainaus:
Niin kun vaikka painaa A kirjainta niin toinen ukko2 liikku ukko1 tilalla?
hmm - yrititkö kirjoittaa tuohon, että painettaessa A-kirjainta ukko1 liikkuu johonkin suuntaan ja tämän jälkeen ukko2 tulee ukko1:n paikalle jossa se äsken oli?
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer
tapahtuma ajetaan aina kun jotakin näppäintä painetaan (A-kirjaimen KeyCode on 65). Nyt teet tuohon jonkinlaisen tarkistuksen jossa katsotaan mitä näppäintä on painettu ja siirrät ukko1/ukko2 sen mukaan.
En ymmärtänyt kysymystä... Mitä niille ukoille pitäisi tapahtua?
Lomakkeen objekteja liikutetaan muuttamalla niiden paikka koordinaatteja. move-metodi siirtää objektin parametreissä määrättyyn x-y koordinaattiin lomakkeella.
Esim. Object.Move(5) siirtää halutun objektin vasempaan laitaan lomaketta siten, että objektin vasenlaita on lomakkeen x-koordinaatissa 5.
Jos taas haluat liikuttaa kappaletta muutat sen Left ja Top arvoja.
Esim. Object.Left=Object.Left-5 siirtää kappaletta 5 pikseliä lähemmäksi lomakkeen vasenta reunaa.
Vai oliko tarkoitus se että jos vaikka ukkoa1 liikutetaan näppäimillä ja kun painetaan nappia A niin liikkuukin ukko2?
Oliko tuo vitsi tai jotain? Ei tällaisiin kannata vastata.. ihan periaatteen vuoksi..
Miks täällä aina välillä on tällasia outoja kysymyksiä... Luulis nyt kaikkien osaavan kysyä selkeästi, että joku edes ymmärtäisi sen mitä kysytään. (mä en ainakaan ymmärtäny tota kysymystä)
Vai siis haluatko että sen ukon ulkoasu vaihtuu (siis ukon kuva vaihtuu). Voisit kyllä selventää kiitos. Luultavasti (tai siis on) ongelmasi on niin yksinkertainen kuin ruotsalainen labyrintti:
Alku ======================= Loppu
;)
Siis jos ukko1 ensin liikutetaan hiirellä ja ukko2 on jossain muualla ja kun painaa A näppäintä niin ukko1 jää siihen paikaan mihin se on liikutettu ja ukko2 aletaan liikuttaa hiirellä(ukko1 ja ukko2 eivät siis ole yksi ja sama picture tai image)TAJUSITTEKO?
lainaus:
ja kun painaa A näppäintä niin ukko1 jää siihen paikaan mihin se on liikutettu ja ukko2 aletaan liikuttaa hiirellä(ukko1 ja ukko2 eivät siis ole yksi ja sama picture tai image)
No tuohan onnistuu niin, että tarkkailet koko ajan koska sitä A-kirjainta painetaan ja sitten kun sitä painetaan, vaihdat koodissa hiiren liikuttamaan sitä toista ukkoa. On vain hieman vaikea kertoa miten sen teet, kun en ole nähnyt koodia millä liikutat niitä ukkoja.
lainaus:
TAJUSITTEKO?
Ei tarvitse huutaa. Tajuaisimme ongelmat nopeammin jos kysymykset kirjoitettaisiin selkeämmin ja niissä kerrottaisiin kuinka koodi/ohjelma - tai mikä tahansa - toimii tällä hetkellä sekä kuinka sen _pitäisi toimia_
Siis(taas)
Private Sub form_mousemove ' (ja sitte jotain) Image1(ukko1).move x,y End Sub
Silleen pitäisi saada että tuo image1 tuossa vaihtuisi image2seks(ukko2)kun painetaan A:TA
Tee vaikka näin:
Pistä ensin Formin General-osioon - eli sen koodi-ikkunan ihan ensimmäiselle riville - rivi
Dim LiikutaUkkoa As Byte
ja Form_Load() tapahtumaan rivi
Private Sub Form_Load() LiikutaUkkoa = 1 End Sub
sekä lisäät vielä seuraavat rivit:
Private Sub Form_KeyPress(KeyAscii As Integer) ' KeyAscii 65 = iso A-kirjain ja 97 = pieni a-kirjain If KeyAscii = 65 Or KeyAscii = 97 Then If LiikutaUkkoa = 1 Then LiikutaUkkoa = 2 Else LiikutaUkkoa = 1 End If End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If LiikutaUkkoa = 1 Then Image1.Move X, Y ' Liikutetaan ukko1:stä If LiikutaUkkoa = 2 Then Image2.Move X, Y ' Liikutetaan ukko2:sta End Sub
Kokeillaas vielä yhden kerran kun ei värjäys toiminut:
Dim LiikutaUkkoa As Byte
Private Sub Form_Load() LiikutaUkkoa = 1 End Sub
sekä lisäät vielä seuraavat rivit:
Private Sub Form_KeyPress(KeyAscii As Integer) ' KeyAscii 65 = iso A-kirjain ja 97 = pieni a-kirjain If KeyAscii = 65 Or KeyAscii = 97 Then If LiikutaUkkoa = 1 Then LiikutaUkkoa = 2 Else LiikutaUkkoa = 1 End If End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If LiikutaUkkoa = 1 Then Image1.Move X, Y ' Liikutetaan ukko1:stä If LiikutaUkkoa = 2 Then Image2.Move X, Y ' Liikutetaan ukko2:sta End Sub
Nyt näkyvät nämäkin koodit oikein, lukuunottamatta tuota viimeistä pätkää, josta on oikeasti unohtunut ensimmäinen koodi-tagi :)
Edelleen: Move-komento siirtää objektin absoluuttisesti annettuihin koordinaatteihin. Jos klikkaat hiirellä vasempaan laitaan kuva siirtyy juuri klikkauskohtaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.