Hej! Så skall det klart vara. Proceduren återgår till den där den blev anropad. Jahaja. Är det något speciellt med att den just anropas från en loop då? Jag menar, jag hoppar ju till procedurer på många andra ställen i mina program, och då stannar ju programmet vid end sub för att avvakta nya order? mmm... du får visa vad den gör i din Call procedur. Public Sub banor() Oki kolla om inte denna ändring fixar det du vill >Är det något speciellt med att den just anropas från en loop då? Det har du med all sannorlikhet alldeles rätt i, Martin Adrian. ;) Är förmodligen en hel del man behöver läsa på om, men mitt största problem är att jag bara är en sporadisk programmerare, så man hinner glömma mellan gångerna. :/ Sen min gamla käpphäst.procedure hantering
Jag har ett för er löjligt enkelt problem. Det är ju så att jag vill kalla på en procedure inifrån en loop, och denna procedure ska stanna programmet till dess att man trycker på en knapp. Detta brukar ju inte vara en utmaning, bara till att kalla på proceduren, exekvera koden och programmet slutar vid End Sub. Av för mig okänd anledning så är det inte så i detta fallet. Jag kallar på proceduren, koden i den exekveras, men sen hoppar programmet tillbaka till där akh kallade på proceduren? Hur kan det komma sig? Har försökt med lite av varje,men jag får helt enkelt inte stopp på mitt program efter hoppet till proceduren.Sv: procedure hantering
Om den skall stanna till knapptryckning får du lägga in en loop i slutet som väntar på Ok från Knapp.
Återkom om du vill ha mer detaljer.Sv:procedure hantering
Visst kan jag sätta dit en loop, om det så behövs, kan bara inte förstå varför det plötsligt behövs.Sv: procedure hantering
Normalt går den dit, utför det den skall och sedan går tillbaka till där den blev anropad.
Du har koll på skillnad Procedur /Function Eller ?
Sedan måste du också ha koll på om det är en Public eller Private Procedur.Sv:procedure hantering
Dim temp As String
Dim sökis As String
Dim banladdning As Integer
If gametype = "A" Then sökis = "\data1.omi"
If gametype = "B" And Map_frame.Caption = "Active Map Pack: 1" Then sökis = "\LP1.omi"
If gametype = "B" And Map_frame.Caption = "Active Map Pack: 2" Then sökis = "\LP2.omi"
If gametype = "B" And Map_frame.Caption = "Active Map Pack: 3" Then sökis = "\LP3.omi"
If gametype = "B" And Map_frame.Caption = "Active Map Pack: 4" Then sökis = "\LP4.omi"
If gametype = "B" And Map_frame.Caption = "Active Map Pack: 5" Then sökis = "\LP5.omi"
If gametype = "B" And Map_frame.Caption = "Active Map Pack: 6" Then sökis = "\LP6.omi"
If gametype = "B" And Map_frame.Caption = "Active Map Pack: 7" Then sökis = "\LP7.omi"
If gametype = "B" And Map_frame.Caption = "Active Map Pack: 8" Then sökis = "\LP8.omi"
banladdning = bana
Label1.Caption = bana
Open App.Path & sökis For Input As #1
Do Until banladdning = 0
If EOF(1) Then Gamewin
If EOF(1) = False Then Input #1, temp
banladdning = banladdning - 1
Loop
Close #1
LVLH = Mid(temp, 1, 30)
LVLV = Mid(temp, 43, 28)
LVLB = Mid(temp, 85, 20)
LVLPH = Mid(temp, 113, 1)
LVLPV = Mid(temp, 127, 1)
tid = 50
LVLmotor
End Sub
Public Sub Gamewin()
Bigstatus.Caption = "Map pack cleared!"
Lowerscreen.Visible = False
banladdning = 0
Gameclock.Enabled = False
Status.Caption = score
won = True
End Sub
Det enda jag har problem med här är att om EOF kommer, så skickas den ner till Gamewin. men när den är klar där och annonserat att spelet är avklarat så går den ändå tillbaka till varifrån den var skickad. Jag programmerar på lätt nivå, så jag har minimalt med konstigheter i mina program, som till exempel function procedurer och sådant. Jag tycker jag använda proceduren som jag alltid använder procedurer?Sv: procedure hantering
Det är ju helt ok att Gamewin går tillbaka till steget efter Call Gamewin i If EOF(1)
och fortsättter att köra därifrån. Så här får du göra.
<code>
If EOF(1) Then
Call Gamewin
Close #1
Exit Sub
End If
If EOF(1) = False Then Input #1, temp
banladdning = banladdning - 1
Loop
</code>Sv: procedure hantering
Du måste nog läsa på om skillnaden mellan events och funktioner/procedurer.Sv:procedure hantering
Ska kika över den ovanstående koden så fort jag får tid! :) Sv: procedure hantering
Använd inte slentrianmässigt
<b>Open App.Path & sökis For Input As #1
DVS As #1</b>
Så här bör det vara
<code>
Dim Fnum As Long
Fnum = FreeFile
Open App.Path & sökis For Input As #Fnum
'................................
'.............................
Close #Fnum
</code>
Undrar om det inte är smartare för dig att använda <b>Line Input #Fnum,temp</b>