Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  20 1723
Hei folks!
Har en liten request fra en total nabb:
Har et prosjekt på skolen hvor vi bruker VB6.0.
Det går ut på at du får fremstilt en del spørsmål, men vi har problemer med telleren/counter.
Planen er at telleren skal telle hvor mange "riktige" du har av f.eks 10 spørsmål.
Etter det 10. spørsmålet så skal jeg få opp msgbox som forteller meg hvor mange riktige jeg har fått.

Hovedproblemet er at vi ikke får telleren til å telle ordentlig.
Jeg trenger rett og slett hjelp til å få til en teller.

Scenarioet er at du får stilt et spm, 4 svar alt., og etter 10 spm så skal du få oppsummert hvor mange riktige du hadde.
Så kan noen skrive opp hva jeg må code den til?
At telleren skal legge til en for hver riktig, og IKKE legge til hvis jeg svarer feil.

Kan noen hjelpe?

Og i samme slengen, har noen en brukbar PDF-fil som VB6.0 som de kunne slengt over?

All hjelp mottas med takk.

Mvh H.L & K.T.S
m0b
m0b's Avatar
DonorAdministrator
Nå hater jeg stort sett VB over alt på jord. Men hvis du kan slenge ut litt kode over hva du har skrevet, så kan jeg/vi eventuelt prøve å se og rette eller foreslå andre måter på. Litt enklere å se ut i fra kode i stedet for det du skriver.

Det du stort sett trenger er en if-statement og en variabel som teller for hver riktige svar

Pseudo-kode:

Kode

if riktig-svar-1
  antRettSvar + 1

if riktig-svar-2
  antRettSvar + 1

osv ...

MsgBox( antRettSvar )
Dette kan selvfølgelig løses ved en loop, men du kan begynne med noe slikt.
Sist endret av m0b; 23. januar 2007 kl. 09:28.
Trådstarter
21 0
Her kommer coden.
Det er så amatørmessig som det kan få blitt, og er langt ifra ferdig.
Hadde vært VELDIG kjekt med litt hjelp til telleren, og jeg håper du skjønner litt av scenarioet.

Lol, fikk ikke med mellomrommene på coden, soz.

Kode

 Public teller As Integer

Public Sub Command1_Click()
Form3.Show
Form1.Hide
Counter = 0
Counter = counter + 1
End Sub

Private Sub Command2_Click()
Form3.Show
Form1.Hide
End Sub

Private Sub Command3_Click()
Form3.Show
Form1.Hide
End Sub

Private Sub Command4_Click()
Form3.Show
Form1.Hide
End Sub



Public Sub Command1_Click()
Counter = Counter + 1
Form2.Show
Form3.Hide
End Sub

Public Sub Command2_Click()
Form2.Show
Form3.Hide
End Sub



Private Sub Command1_Click()        *form2
MsgBox (teller)
End Sub
Sist endret av m0b; 23. januar 2007 kl. 10:02.
m0b
m0b's Avatar
DonorAdministrator
Ja, jeg skjønner scenarioet - men ser ikke problemet. I det du har skrevet her har du vel alle forutsetninger for å kunne løse oppgaven din?
Trådstarter
21 0
Problemet er at hvis jeg setter teller + 1 og så når msgbox dukker opp så står det bare 1.

hvis jeg setter teller=1 og så teller + 1 så får jeg 2, men da får jeg to uavhengig av hva jeg svarte på forrige spm.

Noen forslag?
m0b
m0b's Avatar
DonorAdministrator
Initialiser grunnnverdien 0 til variabelen (som er en global variabel i klassen) når formen lastes inn. Når du trykker på en knapp som er rett legger du til 1 på den globale variabelen. Når du er ferdig med å trykke på knappene så spytter du ut variabelens verdi.
Trådstarter
21 0
Sitat av |d13m0b
Initialiser grunnnverdien 0 til variabelen (som er en global variabel i klassen) når formen lastes inn. Når du trykker på en knapp som er rett legger du til 1 på den globale variabelen. Når du er ferdig med å trykke på knappene så spytter du ut variabelens verdi.
Vis hele sitatet...
og oversatt til code?

vet at jeg maser fælt >.<
For å øke teller med 1.
teller = teller + 1

Sitat av Tathar
Sitat av |d13m0b
Initialiser grunnnverdien 0 til variabelen (som er en global variabel i klassen) når formen lastes inn. Når du trykker på en knapp som er rett legger du til 1 på den globale variabelen. Når du er ferdig med å trykke på knappene så spytter du ut variabelens verdi.
Vis hele sitatet...
og oversatt til code?

vet at jeg maser fælt >.<
Vis hele sitatet...

Kode

Public teller As Integer

Public Sub Form1_OnLoad()
    teller = 0
End Sub
(litt usikker på funksjons navnet siden det er mange år siden jeg rørte VB6, men den som kjøres ved åpning av form/vinduet)
Sist endret av Razor Sharp; 23. januar 2007 kl. 14:05.
Her har vi et kjapt eksempel:

Private sub form_load()
dim teller as integer, ans as string
ans = inputbox("Hvilken farge var det på napoleons hvite hest?")
if ans = "hvit" then teller = teller + 1
ans = inputbox("Hvor mange mil er det i to mil?")
if ans = "2" then teller = teller + 1
msgbox "Gratulerer, du hadde " & teller & " riktige."
end sub
Sist endret av MalfunctioN; 23. januar 2007 kl. 19:23.
Trådstarter
21 0
Sitat av MalfunctioN
Her har vi et kjapt eksempel:

Private sub form_load()
dim teller as integer, ans as string
ans = inputbox("Hvilken farge var det på napoleons hvite hest?")
if ans = "hvit" then teller = teller + 1
ans = inputbox("Hvor mange mil er det i to mil?")
if ans = "2" then teller = teller + 1
msgbox "Gratulerer, du hadde " & teller & " riktige."
end sub
Vis hele sitatet...
Den fikk jeg til, men fikk fortsatt ikke msgbox til å vise hvor mange riktige jeg hadde.

Men egentlig så er jeg ute etter å trykke på en knapp, og så oppsumere til slutt hvor mange riktige jeg trykket på.
Kan bli litt komplisert for noen å måtte skrive inn svarene, men utrolig mange takk for hjelpen

Bør kanskje også få med at jeg bytter form etter at jeg har svart på spm.
Sist endret av Tathar; 25. januar 2007 kl. 10:10.
Husker ikke helt hvordan VB6 er nå lenger, men hvis du bytter form mellom hvert spørsmål, vil du ikke da forkaste den "globale" verdien i form klassen da.
Mener du må lage en modul (.bas fil) med variablen i, for å beholde verdien mellom formene.
forresten, hvorfor ha alle spørsmålene i forskjellige former? når du kan forandre teksten på samme form med en liten kode?
Denne her har tre tekstbokser i en form, og en "beregn svar" knapp. Antall rette svar beregnes, og kommer opp i separat form.

http://www.sharebigfile.com/file/684...ject1-zip.html
Trådstarter
21 0
Sitat av etse
forresten, hvorfor ha alle spørsmålene i forskjellige former? når du kan forandre teksten på samme form med en liten kode?
Vis hele sitatet...
enkelt og greit første gangen jeg bruker det, og har ikke peiling.
Men takker som sagt for all hjelp jeg kan få... Skal ta en titt på fila til Shade~
Trådstarter
21 0
Hey og hopp!

Nå fungerer alt som det skal, men det er en ting til jeg lurer på!

Er det en eller annen måte å hjemme "baren" på toppen?
Den med minimer, maks og lukk?
har gjort sånn at du ikke kan lukke med kryss og satt passord på avslutt.
men føler at den baren er litt i veien.

vet noen om en måte å fikse dette på?
Du kan vel enten gjøre teller++;

eller f.eks teller = teller + 1;

Skjønner?
Trådstarter
21 0
Sitat av flexd
Du kan vel enten gjøre teller++;

eller f.eks teller = teller + 1;

Skjønner?
Vis hele sitatet...
lol, les nederste posten

telleren og alt er i orden, bare lurer på om det er en eller annen måte å hjemme den baren med min, maks og avslutt?
flexd: Hva er det du svarer på? Les spørsmålet. Dessuten er det ikke Visual Basic du snakker om, feil syntax.

Tathar: Formen du skal gjemme baren på, set FormBorderStyle til None, så skal den vel gjemmes. Husk at du ikke vil kunne flytte på formen nå uten å skrive egne rutiner for det.
Trådstarter
21 0
men når jeg kjører windows maxed så gjør vel ikke det no?
Nei, det gjør ikke noe. Hvis windowstate er Maximized, skal den kunne dekke hele skjermen. Så lenge programmet har fokus hvertfall.
Trådstarter
21 0
Jeppers, alt i orden nå
Takker for hjelpen...
Skal ikke se bort ifra at jeg dukker opp igjen