Gå til innhold

Anbefalte innlegg

Klart ikke å finne noen bedre topic...

 

er temmelig fersk innen vb. Vet hvordan man kan få det til å stå en bestemt ting i en label eller text box, men jeg lurer på hvordan man kan fådet til å komme noe nyt for hver gang kan trykker på knappen. Som om man liksom blar videre for hver gang man trykker.

 

hvis jeg sier at poenget er å lage en vitse generator så hjelper det vel litt...

Lenke til kommentar
Videoannonse
Annonse

Det finnes flere måter å gjøre dette på. Men den leteste måten må være noe slikt:

 

Const Max = 5 ' Hvor mangen vitser vi har på lager

Dim lIndex As Long

Private Sub cmdLast_Click()

' Hvis lIndex er lik eller mindre enn 0 så skal den ikke endres
If lIndex <= 0 Then
   lIndex = 0
   Exit Sub ' Gå ut av prosedyren
End If

lIndex = lIndex - 1
Update

End Sub

Private Sub cmdNext_Click()

' Hvis lIndex er lik eller større enn maksiumantallet så skal den ikke endres
If lIndex <= Max Then
   lIndex = Max
   Exit Sub ' Gå ut av prosedyren
End If

lIndex = lIndex + 1
Update

End Sub

' Oppdaterinsprosedyren
Public Sub Update()

' En buffer-streng. Brukes bare slik at vi slipper å skrive txtVits.Text flere ganger
Dim strText As String

' Etter hvert som du legger inn flere vitser er det nødvendig å øke variabelen max til det rette antallet.
Select Case lIndex
Case 0
   strText = "En ung dame sier til doktoren, - Du må hjelpe meg, jeg har vondt over alt." _
   & vbNewLine & "- Hva mener du? spør doktoren." & vbNewLine & _
   "Damen pekte på hennes høyre kne med pekefingeren og skrek i smerte." & vbNewLine & _
   "Så pekte hun på venstre kinn og skrek, - Au, det gjør så vondt!" & vbNewLine & _
   "Hun pekte så på høyre øreflik, - Au, au, au, til og med det gjør vondt!" & vbNewLine & _
   "Doktoren spør forsiktig, - Er du naturlig blondine?" & vbNewLine & _
   "- Ja, hvorfor det?" & vbNewLine & _
   "- Tenkte meg det, svarte doktoren, - Du har en forstuet finger."
Case 1
   ' Her legger du inn vits nr. 1
Case 2
   ' Osv...
End Select

txtVits.Text = strText

' Vi har ikke lyst at de forskjellige knappene skal kunne trykkes på når vi har nådd enden eller slutten
cmdNext.Enabled = CBool(lIndex <> Max)
cmdLast.Enabled = CBool(lIndex > 0)

End Sub

 

Du må også huske å endre navnet på kontrollene dine. "Neste vits" knappen må hete cmdNext og "Forrige vits" cmdLast. Kall så tekstfeltet ditt for txtVits . Hvis dette er en label, så må du endre linjen

txtVits.Text = strText til dette:

 

txtVits.Caption = strText

Endret av aadnk
Lenke til kommentar

takker for svar

 

Men jeg mener det skal finnes en lettere måte å gjøre dette på...

Husker en gang da jeg var ganske liten så viste onkelen min meg litt visual basic (han er ganske dreven på det, så vidt jeg har forstått), og da klart han å lage en knapp som som forandra bakgrunns fargen på formen til grønn første gangen han trykket på den og gul andre gangen han trykket på den. Og dette var bare med noen få linjer.

 

hadde tenkt til å lage en vitse generator på omtrent samme måten, men bare en commandbutton og en label (eventuelt en textbox).

 

Tanken er at det skal bli noe alla en enkel passord eller serial generator (hvis dere skjønner).

 

(håper dere skjønner hva jeg snakker om)

Lenke til kommentar

Hmm... vel, en forenklet kode av hva jeg skrev sist gang ville være noe sånt:

 

Private Sub cmdNext_Click()

Select Case Val(cmdNext.Tag)
Case 0
  txtVits.Text = "En ung dame sier til doktoren, - Du må hjelpe meg, jeg har vondt over alt." _
  & vbNewLine & "- Hva mener du? spør doktoren." & vbNewLine & _
  "Damen pekte på hennes høyre kne med pekefingeren og skrek i smerte." & vbNewLine & _
  "Så pekte hun på venstre kinn og skrek, - Au, det gjør så vondt!" & vbNewLine & _
  "Hun pekte så på høyre øreflik, - Au, au, au, til og med det gjør vondt!" & vbNewLine & _
  "Doktoren spør forsiktig, - Er du naturlig blondine?" & vbNewLine & _
  "- Ja, hvorfor det?" & vbNewLine & _
  "- Tenkte meg det, svarte doktoren, - Du har en forstuet finger."
Case 1
  ' Her legger du inn vits nr. 1
Case 2
  ' Osv...
Case Else ' Gå tilbake til utgangspunktet
  cmdNext.Tag = 0
  cmdNext_Click
End Select

End Sub

Endret av aadnk
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...