Hej! Det är mycket lättare att svara på kodfrågor om du klistrar in koden och Ok, ska tänka på det där med rubriken nästa gång! Kan också säga att jag nu löst problem 1. D.v.s. problemet hur fönstrena ska undvika att komma längre och längre ner. Men jag är fortfarande tacksam för svar på min andra fråga. Låt mig först säga att det bara för med sig nackdelar att ha ett fönster för varje alternativ. Frågan jag ställer mig är varför du inte har det i samma fönster. Tack så mycket! Som sagt är jag nybörjare och jag frågar därför dig, Andreas, hur jag ska göra för att slippa ha ett fönster/fråga. Jag har nämligen ingen aning. du har tex: vill du ha allt i ett fönster statikt, använd tex en sstab control. Annars Undbvik SSTab. Innebär ytterligare en komponent att distrubera.Frågor!
Jag har ett par frågor:
Jag kan ju säga att jag programmerar i Visual Basic 6 och att programmet är ett program för att öva på att stå i kassan på en pizzeria (räkna ut hur mycket växel folk ska ha), som jag gör åt en kompis som är dålig på räkning.
1. När man svarat på en fråga, kommer en ruta upp där det står "Rätt!" och sedan är tanken att ett nytt "MDI-child" ska komma upp på samma ställe som det förra. Men det händer inte. Istället kommer det nya fönstret upp en bit ner, och nästa ytterligare en bit ner o.s.v. Vad är felet?
2. Svårt att förklara kort, men jag ska försöka: När man svarat rätt på de tre första frågorna går det bra. Men när man svarar på den fjärde frågan så kommer rutan "Compile Error: Argument not optional" upp. Detta trots att koden är exakt samma som i de tidigare! Den enda ändringen är att form "4" ska komma upp istället för "1", "2", "3" som i de tidigare. Vad är felet??
Tacksam för svar,
Mats BillertSv: Frågor!
även markerar den rad som koden stannar på.
Ang. fönstrena, är inte det en defaultfunktion, se tex om du öppnar flera
filer samtidigt i ett annat program och de inte är maximerade... Vet tyvärr
inte vad man kan göra åt det. Men klistra in koden som genererar det
andra felet så kan vi säkert hitta en lösning!
Ett annat tips - sätt gärna en relevant rubrik - den nuvarande säger inte
ett dugg!
/EmmaSv: Frågor!
Koden är mycket enkel. Här kommer den:
Private Sub cmdsvara_Click()
Select Case txtsvar ' Här tycker programmet att det är fel!
Case "10 kr"
MsgBox "Rätt Svarat!", vbOKOnly, "Rätt!"
frm14.Visible = False
frm15.Show
frm15.Height = 3800
frm15.Width = 5320
txtsvar = ""
Case Else
MsgBox "Tyvärr, det var fel. Försök igen!", vbOKOnly, "Fel!"
End Select
End Sub
// MatsSv: Frågor!
Sv: Frågor!
Gissar på att txtsvar är en kontroll array. Ta bort 0 i index egenskapen index.Sv: Frågor!
Det fungerade när jag tog bort nollan. Jag kan ju säga att jag började med Visual Basic för fem dagar sedan, så jag är inte så bra än. Ska prova det där du sa om att inte ha ett fönster för varje fråga..Sv: Frågor!
Tacksam för svar,
Mats BillertSv: Frågor!
dim fraga1 as string
dim fraga2 as string
dim svar1 as string
dim svar2 as string
fraga1 = "vad heter du?"
fraga2 = "är du någon?"
svar1 = "Namn"
svar2 = "nja..osäker på det"
sen visar du frågan bara:
label1.caption = fraga1
if txtSvar = svar1 then
msgbox "rätt!!!!!!!"
'visa nästa fråga:
label1.caption = svar2
else
msgbox "feeeel"
end if
så skulle jag ha gjort
/bjSv: Frågor!
låter bj:s förslag inte fel...
/EmmaSv: Frågor!
Härr är ett litet exempel:
<code>
Option Compare Text
Private Aktuell as Long
Private Fråger(0 to 3) as String
Private Svar(0 to 3) as String
Private Sub Form_Load
Fråger(0) = "5+5"
Fråger(1) = "1+5"
Fråger(2) = "2+3"
Fråger(3) = "3+1"
Svar(0) ="10"
Svar(1) ="6"
Svar(2) ="5"
Svar(3) ="4"
Update
End Sub
Private Sub Update
If Aktuell > UBound(Fråger)
Command1.Enable=False
msgbox "Du har klarat alla fråger!"
Else
Label1.Caption = Fråger(Aktuell)
Text1.Text= ""
Text1.Setfocus
End If
End Sub
Private Sub Command1_Click()
If Text1.Text = Svar(Aktuell) Then
Aktuell = Aktuell + 1
Else
Msgbox "Fel svar!" + vbcrlf + "Försök igen.",vbInformation
Text1.Setfocus
Text1.Selstart=0
Text1.SelLen=Len(Text1.Text)
End If
End Sub
</code>