Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: Tekstiseikkailu (VB)

Sivun loppuun

Dareon [09.03.2005 15:22:37]

#

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.

Hellami [09.03.2005 17:54:56]

#

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

Dareon [09.03.2005 19:21:43]

#

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? :)

Henu [09.03.2005 19:39:56]

#

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.

Dareon [09.03.2005 20:08:07]

#

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. :)

tuomas [09.03.2005 20:12:52]

#

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?

Hellami [09.03.2005 20:32:53]

#

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 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? :)

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

Juice [10.03.2005 19:40:13]

#

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

Hellami [10.03.2005 19:59:33]

#

Juice kirjoitti:

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

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"?

Juice [10.03.2005 20:06:02]

#

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?

Juice [10.03.2005 22:02:49]

#

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

hunajavohveli [10.03.2005 22:23:25]

#

Tuo + on "normaali" tapa merkkijonojen liittoon. & sitten taas liittää yhteen merkkijonoiksi myös sekaisin merkkijonoja ja numeerisia muuttujia.

Spongi [10.03.2005 23:08:01]

#

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

Sivun alkuun

Vastaus

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

Tietoa sivustosta