Avatar billede dr.truti Nybegynder
19. september 2001 - 17:31 Der er 18 kommentarer og
3 løsninger

Løkke.... Hvad er der galt ??

Jeg skal have denne funktion til at blive udført 110 gange... der efter skal programmet springe ud af løkken og fortsætte.

Private Sub Command1_Click()
Dim antal As Integer
antal = 100
Do
start:
antal = antal + 1
If antal > 110 Then
Label1.Caption = antal

\'skal hoppe til start

Else
Label2.Caption = \"hey\"
End If
Exit Do
End Sub
Avatar billede dr.truti Nybegynder
19. september 2001 - 17:32 #1
GoTo start funket ikke... men jeg kan huske at der er en meget nem måde at løse problemet på :)
Avatar billede cellaneous Nybegynder
19. september 2001 - 17:58 #2
det ser mystisk ud du bruger en Do løkke - hvad er det som du vil opnå?

Du kan jo skrive noget i den her stil:

Dim antal, I, mittal As Integer

mittal = 5000
\' bare eksempel - find selv på noget andet
\' - men overvej så
\' om mittal skal være \"integer\" :-)
antal = 100

For I = 1 To mittal
    antal = antal + 1
    If antal < 110 Then lavel2.Caption = \"hey\"
    If antal > 110 Then Label1.Caption = antal
Next I

men medmindre din computer er ualmindeligt langsom, vil det give samme resultat at du skriver

label1.caption = 50000

\' (fordi du i praksis ikke vil stoppe løkken
\' og få opdateret din label rent visuelt før
\' den er nået til mittal) dit program vil bare
\' holde computeren beskæftiget med nonsens
\' og

label2.caption = \"hey\"

\' (fordi du jo ikke ønsker label2.caption = \"\"
\' efter antal > 110 vil den forblive \"hey\")

hvis du skriver hvad du vil, istedetfor din kode er det nemmere at hjælpe :-)
Avatar billede cellaneous Nybegynder
19. september 2001 - 18:00 #3
ups, for mange nuller i label1.caption = 50000
skulle have skrevet label1.caption = mittal istedet
Avatar billede dr.truti Nybegynder
19. september 2001 - 18:18 #4
nej nej nej..... Det jeg sågte var at når programmet kom til et bestemt sted skulle funktionen foretages X antal gange..... for at løkken skulle blive ophøvet skulle man have over X antal verdi.....
Avatar billede cellaneous Nybegynder
19. september 2001 - 18:44 #5
Her er et eksempel på et program som laver noget 110 gange, og \"noget\" er her \"t lave en msgbox\"men du kan jo bare kalde en sub istedet)

Dim antal, I As Integer

For I = 0 To 108
antal = antal + 1
    MsgBox \"din funktion er nu udført \" & Str(antal) & \" gange\"
    If antal = 109 Then
        MsgBox \"færdig\", 64, \"jubii\"
    End If
Next I
Avatar billede jelzin101 Praktikant
19. september 2001 - 18:54 #6
du kan lave det lidt (men ikke meget) smartere...

private sub blabla()
for i = 0 to 109
msgbox \"din funktion er nu udført \" & (i+1)\" gange)
next i
msgbox \"done\",64,\"Yihaaaaaa\"
end sub
Avatar billede jelzin101 Praktikant
19. september 2001 - 18:55 #7
hov...

private sub blabla()
for i = 0 to 109
msgbox \"din funktion er nu udført \" & (i+1) & \" gange\"
next i
msgbox \"done\",64,\"Yihaaaaaa\"
end sub
Avatar billede cellaneous Nybegynder
19. september 2001 - 18:55 #8
psst, kan se på din hjemmeside at du savner kode der kan forhindre folk i at resize en form?

http://www.vbexplorer.com/viewcode.asp?SendText=files/systemmenu

den kan hverken flyttes eller resizes.
Avatar billede jelzin101 Praktikant
19. september 2001 - 18:59 #9
for at løkken skulle blive ophøvet skulle man have over X antal verdi.....

hvis du bare bruger en for - next løkke vil den hoppe ud af den når den er færdig.....
syntaks
For [tæller] = [startværdi] to [slutværdi]
[handling(er)]
Next [tæller]

vær opmærsom på den får startværdien som tællerværdi i første gennemløb, altså hvis du bruger :
for i = 0 to 9
print time$
next i

vil løkken køre og udskrive tiden 10 gange

//Jelzin
Avatar billede jelzin101 Praktikant
19. september 2001 - 19:01 #10
hvis du vil forhindre folk i at risize din form kan du bruge borderstyle = 1 -enten i egenskaber for formen eller under run time (form_load)
Avatar billede cellaneous Nybegynder
19. september 2001 - 19:10 #11
og for nu at fortsætte hvor jelzin slap :-P eftersom den får startværdien kan du overveje i dit eksempel at bruge

For antal = 100 to 110

istedetfor

For antal = 0 to 108

:-)
Avatar billede jelzin101 Praktikant
19. september 2001 - 19:17 #12
det cellaneous mener (forhåbentligt)
for antal = 1 to 110

next antal


(sorry kunne ikke la\' vær\') :0)
Avatar billede cellaneous Nybegynder
19. september 2001 - 19:24 #13
jeg tænkte kun på det der \"antal = 100\" i det oprindelige indlæg, men er det ikke 1-109 hvis du vil køre 110 gange? 1-110 er jo 111 ik?
hader tal - er lidt talblind og plejer at holde mig til den mere grafiske del af vb,
men tror nu nok vi to til sammen kan få sporet truti ind på det rigtige.
Avatar billede jelzin101 Praktikant
19. september 2001 - 19:30 #14
vi kan da prøve :)

det der sker er at når der står
for i = 0  < bliver i sat = 0

og først ved next i bliver den = 1 hvorefter der springes til :to 100 hvor der bliver tjekket hvor stor værdien af i er....
derfor er 0 to 9 = 10 osv...

prøv evt selv

for i = 0 to 9
a = a + 1
next i
print a
Avatar billede jelzin101 Praktikant
19. september 2001 - 19:32 #15
så jo det er \"to 109\"
Avatar billede jelzin101 Praktikant
19. september 2001 - 19:33 #16
(hvis man altså starter med 0)
Avatar billede mikker Nybegynder
19. september 2001 - 20:42 #17
Hvis du absolut VIL bruge Do :

Private Sub Command1_Click()
Dim antal As Integer
antal = 100
Do while not antal = 110
start:
antal = antal + 1
Label2.Caption = \"hey\"
If antal = 110 Then
Doevents
\'skal hoppe til start
loop
Label1.Caption = antal
End Sub

- Mikker
Avatar billede mikker Nybegynder
19. september 2001 - 20:46 #18
Man kunne også prøve at gøre det rigtigt FØRSTE gang :-)

Private Sub Command1_Click()
Dim antal As Integer
antal = 1
Do while not antal = 110
Label2.Caption = \"hey\"
Doevents
antal = antal + 1
loop
Label1.Caption = antal
End Sub

- Mikker
Avatar billede dr.truti Nybegynder
19. september 2001 - 20:49 #19
He He Ok mange tak.... men det jeg manglede var faktisk bare lige en instruktion i next\'en :) Tak Tak for de vildt mange svar :)

Jeg vil prøve at fordele points\'ne mellem jer....

Truti [DK]
Avatar billede mikker Nybegynder
19. september 2001 - 21:14 #20
Anytime :-)

- Mikker
Avatar billede jelzin101 Praktikant
19. september 2001 - 21:43 #21
takker :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester