Nyt kun olen ensimmäisen sovellukseni saanut valmiiksi, ajattelin tutustua aivan uuten osa-alueeseen, nimittäin VB- pelien tekemiseen. Olen tehnyt vähän alustavaa työtä ja saanut jo idean peliksikin (roolipeli) - tekstiseikkailumuodossa. Olen jo tehnyt jonkin näköisen konsolen, johon laitetaan komentoja ja tarina tulostuu rich text boxiin.
Haluaisin kysyä, että miten ohjelman aikana voi vaihtaa tietyn richtextboxin sisältämän tekstirivin tms. väriä ja lisäksi, miten voi tulostaa rich text boxiin niin, että se ei nollaannu joka kerta, kun ohjelma tulostaa sinne jotain uutta. Lisäksi haluasiin vielä tietää, että onko rich text boxin käyttö kaikkein järkevintä tämäntapaisessa projektissa, vai sopisiko joku muu objekti paremmin?
Ja joskus hamassa tulevaisuudessa olen suunnitellut tämän räpellyksen nettiin siirtämistä mikäli tästä joskus jotain tulee siis ORPG peliksi. Niin tietääköhän kukaan oppaita ORPG-pelien tekemiseen, tai onko kellään annettavana mitään ohjeita? Vai kannattaisiko kunnon nettiropetuksen tekemiseen opetella joku toinen kieli kuten esimerkiksi Java, jonka olen kuullut sopivan tarkoitukseen parhaiten.
Kyseessä vissiin "tavallinen" VB ettei .NET?
No tässä kuitenkin joitain .NET:lle, ehkä niitä voi soveltaa tai jotain:
Palauttaa montako riviä on
RichTextBox1.Lines.Length()
Kirjoittaa alkuu (poistamatta vanhaa tekstiä)
RichTextBox1.Text = Tekstiä & Chr(13) & RichTextBox1.Text
Ja vastaavasti loppuun...
RichTextBox1.Text = RichTextBox1.Text & Chr(13) & Tekstiä
Tuosta en tiedä miten tietyn rivin saa muokattua, kun en moiseen ole perehtynyt :)
Ok, Kiitos. Mutta nyt kun pistän tuon koodin VB6:seen, en siis käytä .NET:iä, niin se ei tulosta kertakaikkiaan yhtään mitään. Eli mikä on vikana jos koodi on kokonaisuudessaan:
Private Sub cmdSubmit_Click() RichTextBox1.Text = RichTextBox1.Text & Chr(13) & Tekstiä End Sub
Ja minulla on formilla buttoni submit ja tuo laatikko ihan testin vuoksi. Mitään ei tapahdu.... Koitin myöskin tuota samaa, mutta tähän tyyliin:
Private Sub cmdSubmit_Click() RichTextBox1.Text = "Blaa Blaa.." End Sub
Eikä siltikään mitään tulostunut? :)
kokeileppa näin:
Private Sub cmdSubmit_Click() Teksti = "moi" RichTextBox1.Text = RichTextBox1.Text & Tekstiä End Sub
En kyllä tiedä miten riviä saa vaihettua, mutta tuossa vanha teksti jää talteen.
Onkohan se properitieseissa se vika - siis tuon richtextboxin tai jossain muualla, siinä on ihan default asetukset, mutta mikään näistä vaihtoehdoista ei tuota haluttua tulosta. :)
Henu: eipäs opeteta aloittelijoille huonoja tapoja. Eli määrittele muuttujat joita koodissasi käytät. Henun esimerkissä Dim Teksti As String.
Dareon: Herjaako debug mitään?
Dareon kirjoitti:
Ok, Kiitos. Mutta nyt kun pistän tuon koodin VB6:seen, en siis käytä .NET:iä, niin se ei tulosta kertakaikkiaan yhtään mitään. Eli mikä on vikana jos koodi on kokonaisuudessaan:
Private Sub cmdSubmit_Click() RichTextBox1.Text = RichTextBox1.Text & Chr(13) & Tekstiä End SubJa minulla on formilla buttoni submit ja tuo laatikko ihan testin vuoksi. Mitään ei tapahdu.... Koitin myöskin tuota samaa, mutta tähän tyyliin:
Private Sub cmdSubmit_Click() RichTextBox1.Text = "Blaa Blaa.." End SubEikä siltikään mitään tulostunut? :)
Ylempään:
"tekstiä" on muuttuja ja näin ollen siinä pitäisi olla jotain esim
Private Sub cmdSubmit_Click() Dim Tekstiä As String Tekstiä = "Rivi" RichTextBox1.Text = RichTextBox1.Text & Chr(13) & Tekstiä End Sub
Alempaan:
Private Sub cmdSubmit_Click() RichTextBox1.Text = RichTextBox1.Text & Chr(13) & "Blaa Blaa.." End Sub
Noita en siis ole testannut, mutta luulisin niiden toimivan :p
No tuskin se Chr(13)
auttaa, jos mitään ei tapahdu, siis tapauksessa RichTextBox1.Text = "Blaa Blaa..".
Sitäpaitsi rivinvaihto on Chr(10) & Chr(13)
(saattoi olla, että pelkkä Chr(13)
:kin toimi).
Tarkista RikasTekstiLaatikon nimi ym. seikat, ei koodissas vikaa ole (alemmassa, ylemmässä muuttujaa ei ole määritelty).
Juice kirjoitti:
No tuskin se
Chr(13)
auttaa, jos mitään ei tapahdu, siis tapauksessaRichTextBox1.Text = "Blaa Blaa..".
Sitäpaitsi rivinvaihto onChr(10) & Chr(13)
(saattoi olla, että pelkkäChr(13)
:kin toimi).
Tarkista RikasTekstiLaatikon nimi ym. seikat, ei koodissas vikaa ole (alemmassa, ylemmässä muuttujaa ei ole määritelty).
Chr(13) toimii ainaki VB.NET:ssä yksinään.
Alemmassa on kylläkin vikaa jos haluaa kirjoittaa uutta, vanhaa tekstiä poistamatta.
"RichTextBox1.Text = "Blaa Blaa.."
Lisää vain kyseisen tekstin siihen, uudelleen painaessa muutosta ei huomaa koska teksti korvataan täysin samanlaisella.
Toki vika voi olla siinäkin jos kontrollin nimi on väärin.
(Muistaakseni VB 6:ssa se oli valmiina RTBox1 (tjsp.) eikä tuo RichTextBox1, saatan toki olla väärässäkin.)
Mitä itse epäilen, jos mitään ei tapahtunut tuossa olemmassasi.
Mutta eikös VB herjaa jos kontrolli johon koodissa viitataan ei ole "olemassa"?
Hellami kirjoitti:
Alemmassa on kylläkin vikaa jos haluaa kirjoittaa uutta, vanhaa tekstiä poistamatta.
Ai niin, hän ei halua poistaa vanhaa... No, joko toimii?
Ja eikös vanhassa VB:ssä merkkijonojen liittoon ole + eikä &?
Eli
Private Sub cmdSubmit_Click() RichTextBox1.Text = RichTextBox1.Text + Chr(13) + "Blaa Blaa.." End Sub
Tuo + on "normaali" tapa merkkijonojen liittoon. & sitten taas liittää yhteen merkkijonoiksi myös sekaisin merkkijonoja ja numeerisia muuttujia.
Huah.
Private Sub cmdSubmit_Click() Dim teksti As String teksti = "sieni" RichTextBox1.Text = RichTextBox1.Text & vbCrLf & teksti End Sub
Värin saa vaihettua tähän tyyliin:
'Valitaan merkit väliltä 10-15 RichTextBox1.SelStart = 10 RichTextBox1.SelLength = 5 'ja värjätään ne punaiseksi RichTextBox1.SelColor = vbRed
Aihe on jo aika vanha, joten et voi enää vastata siihen.