04. maj 2005 - 11:59Der er
12 kommentarer og 1 løsning
Advanceret Select Case
Jeg har en række knapper der ændre nogle tal. Jeg har så forskellige kreterier der sætter grænser for hvad knappen må gøre.....
Som jeg umiddelbart ser det skal jeg lave min select case for hver knap og en if i hver case eller også noget med if i if, men mener selv at den løsning vil sløve mit program......
Så nu er mit spørgsmål så om jeg kan lave en case et sted i mit program, som ligger et sted og så sætter variabler og jeg så sætter min if op i hver knap som så chekker variablen ?
Min nuværende løsning med case:
Private Sub Command1_Click() Select Case Case 0 If værdi >= 10 then Msgbox("Info") Else: Text1.Text = CInt(Text1.Text) + 1 Text2.Text = CInt(Text2.Text) - 1 End If Case 1 If værdi >= 12 then Msgbox("Info") Else: Text1.Text = CInt(Text1.Text) + 1 Text2.Text = CInt(Text2.Text) - 1 End If . . . Case 49 If værdi >= 48 then Msgbox("Info") Else: Text1.Text = CInt(Text1.Text) + 1 Text2.Text = CInt(Text2.Text) - 1 End If End Select
Og den skal så ind i hver knap....
Det jeg tænkte:
Select Case Case 0 var1 = 10 Case 1 var1 = 12 . . . Case 49 var1 = 48 End Select
Og så i knappen:
Private Sub Command1_Click() If værdi >= var1 then Msgbox("Info") Else: Text1.Text = CInt(Text1.Text) + 1 Text2.Text = CInt(Text2.Text) - 1 End If End Sub
Ved godt jeg kunne ligge den i en sub eller funktion, men så skal casen kørers hver gang anyways, bare koden vil blive mere overskuelig.......
"Så nu er mit spørgsmål så om jeg kan lave en case et sted i mit program, som ligger et sted og så sætter variabler og jeg så sætter min if op i hver knap som så chekker variablen ?"
hehe joern jeg spurgte ikke om hvordan jeg laver en select case, men om jeg kan lave den ET sted i mit program istedet for hver knap eller i en Sub så den skal køres hver gang der trykkes på en knap.....
Men der imod så den ligger et sted så casen ikke skal kørers hver gang der trykkes på en knap......
Jørn: jeg kan ikke se hvad formålet har med det at gøre...... Desuden har jeg skrevet formålet..... Formålet er at øge en værdi i et tekstfelt via en knap......det jeg gerne vil vide er om jeg kan sætte en select case uden for knappen så den ikke skal kører hver gang der trykkes på en knap.......casen skal bruges fordi der er forskellige kreterier der skal være opfyldt......
Og til det med parametren så ved jeg godt der skal være en, men det er spg. uvedkommende for mit spg er det samme om der er parametre på eller ej......
Fordi jeg spørger er fordi der er 50 muligheder og inde i hver mulighed kommer der en if sætning, og så er det jeg gerne vil vide om mit program kan vide hvad case der skal bruges inden jeg trykker på knappen så den ikke skal kører både case og if når der trykkes på knappen......
Jeg har 2 knapper der hører til 1 tekst felt........
Den ene knap trækker fra ud fra en række kreterier Den anden lægger til ud fra andre kreterier
Når jeg trykker på den der lægger til kører den PT en case der hedder
Select Case CInt(Text9.Text) Case 1 If Cint(Text8.Text) = Then MsgBox "Kan du ikke" Elseif Cint(Text8.Text) = værdi MsgBox "Kan du heller ikke" Else: Text1.Text = CInt(Text1.Text) + 1 Text8.Text = CInt(Text8.Text) - 1 End If Case 2
Helt op til Case 50 End Select
Så er det jeg gerne vil vide om jeg kan flytte min case uden for knappen så den ikke kørers når der trykkes på knappen. Det den så skal når jeg trykker på knappen er så at den skal ha 2 faste værdier som den skal bruge i min if......så jeg ikke får en if inde i en case......
Jeg har pt løst lidt af problemet ved at lave en if med case i og så en if igen i case, det gør nemlig at den øverste if under hver case tilfælde er fjernet og køres kun en gang, og hvis det er tilfældet kører den slet ikke case.......
Da det er blevet lidt irrelevant med svar til spg. så lukker jeg :)
Synes godt om
Ny brugerNybegynder
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.