Olen tekemässä mato peliäni missä on 2 grafiikka muotoa
Pelissä voi valikosta päättää kumman grafiikan ottaa ennen kuin käynnistää pelin mutta tässä on ongelmani. yritän saada koodia toimimaan silleen että ei voi valita molempia tai ei voi jättää valitsematta kumpaakaan. ja kun valitsee toisen nii se käynnistää sen tietyn.
Private Sub Command9_Click() If Check1 & Check2 = Checked Then MsgBox "Et voi pelata molemmilla grafiikka muodoilla", vbCritical, "VIRHE" Check1 = UnChecked Check2 = UnChecked ElseIf Check1 & Check2 = UnChecked Then MsgBox "Sinun täytyy valita grafiikka muoto", vbCritical, "VIRHE" ElseIf Check1 = Checked Then Me.Hide frmMain.Show ElseIf Check2 = Checked Then Me.Hide Playbit.Show End If End Sub
VB:stä en enään kaikkea muista mutta käsittääkseni rivi
If Check1 & Check2 = Checked Then
ei toimi. Kokeileppa muuttaa se tällaiseksi:
if Chek1=Cheked and Chek2=Cheked then
Ja samalla tavalla muutat tuon
ElseIf Check1 & Check2 = UnChecked Then
rivin.
Mikset käytä sarjassa olevia OptionButtoneita? Niistä yksi on aina kytkettynä ja vain yksi.
Jos vain toisen vaihtoehdon voi valita, niin CheckBoxin asemesta sopisi paremmin OptionButton. Silloin mitään tarkistuksia ei tarvita, vaan jompikumpi kohta on varmasti valittuna.
Jos kuitenkin välttämättä haluat käyttää CheckBoxeja, koodi pitää muotoilla jotenkin näin:
If Check1 And Not Check2 Then MsgBox "Valinta 1" ElseIf Check2 And Not Check1 Then MsgBox "Valinta 2" Else MsgBox "Virheellinen valinta!" End If
Huomaa, että VB:ssä &-merkki tarkoittaa merkkijonon yhdistämistä eikä And-operaatiota.
Tai vaihtoehtoisesti voi laittaa vain command buttonit. Jos valittavana on vain kaksi vaihtoehtoa jonka jälkeen pitää klikata jotain nappulaa, niin käyttäjä selviää vain yhdellä klikkauksella jos laittaa kummallekin oman napin.
Ja sitä paitsi se on "grafiiikkamuoto", yhdyssana you know.
Aihe on jo aika vanha, joten et voi enää vastata siihen.