Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Liikkuminen

Sivun loppuun

masa [01.10.2002 16:24:53]

#

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

mikko [01.10.2002 16:35:03]

#

Hyvä yritys...

trinit [01.10.2002 20:19:15]

#

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.

Antti [02.10.2002 11:34:42]

#

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.

Pekka Kauppila [02.10.2002 12:43:32]

#

Vai oliko tarkoitus se että jos vaikka ukkoa1 liikutetaan näppäimillä ja kun painetaan nappia A niin liikkuukin ukko2?

thefox [02.10.2002 13:26:05]

#

Oliko tuo vitsi tai jotain? Ei tällaisiin kannata vastata.. ihan periaatteen vuoksi..

Jogge [02.10.2002 15:45:05]

#

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ä)

Gevil [02.10.2002 16:25:59]

#

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
;)

masa [04.10.2002 20:55:05]

#

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?

trinit [05.10.2002 10:57:28]

#

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_

masa [05.10.2002 18:46:01]

#

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

trinit [05.10.2002 21:12:24]

#

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

trinit [05.10.2002 21:14:43]

#

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

Antti Laaksonen [05.10.2002 22:02:44]

#

Nyt näkyvät nämäkin koodit oikein, lukuunottamatta tuota viimeistä pätkää, josta on oikeasti unohtunut ensimmäinen koodi-tagi :)

Antti [07.10.2002 14:16:17]

#

Edelleen: Move-komento siirtää objektin absoluuttisesti annettuihin koordinaatteihin. Jos klikkaat hiirellä vasempaan laitaan kuva siirtyy juuri klikkauskohtaan.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta