Avatar billede mega-hawk Nybegynder
31. oktober 2010 - 14:33 Der er 10 kommentarer og
1 løsning

Hjælp til select case igen...

Hey people...

Jeg har en class fil for sig selv hvor alle min funtioner bliver kaldt fra.

Public Class funktion

Der i blandt har jeg så en sub med en select.

    Public Sub hit()

        Select Case i

            Case 1
              Her sker der så noget
                i = 2
            Case 2
            Her sker der mere
                i = 3
            Case 3
              og endnu mere
        End Select

Da jeg jo så skal sætte i UDEN for scope vælger jeg at sætte den op for oven ved:

Public Class funktion
dim i as integer = 1

Men da kommer den så heller ikke til at blive mere end 1
Hvor skal den så være for at den kan blive til mere?
Avatar billede claes57 Ekspert
31. oktober 2010 - 15:41 #1
1) drop Public Class funktion
2) ret fra
  Public Sub hit()
til
  Public Sub hit(i)

og kald rutinen med
hit(2)
for at sætte værdien.
Avatar billede mega-hawk Nybegynder
31. oktober 2010 - 16:22 #2
igen så bliver mit hit bare sat til 2 og den bliver any way ikke større :o(

ellers gør jeg noget forkert.
Avatar billede arne_v Ekspert
31. oktober 2010 - 16:49 #3
Public Class funktion
    dim i as integer = 1
    Public Sub hit()
        Select Case i
            Case 1
                ' Her sker der så noget
                i = 2
            Case 2
                ' Her sker der mere
                i = 3
            Case 3
                ' og endnu mere
        End Select

ser OK ud i mine øjne (bortset fra at klassenavnet et totalt forvirrende).

Dim f As funktion = New funktion
' nu er f.i lig med 1
f.hit
' nu er f.i lig med 2
f.hit
' nu er f.i lig med 3
f.hit
' nu er f.i lig med 3
f.hit
' nu er f.i lig med 3
Avatar billede mega-hawk Nybegynder
31. oktober 2010 - 17:10 #4
Hm måske har jeg endnu en gang set mig blind på det hele.

Altså da jeg startede i dag havde jeg min select case i min "main form"

Da så den sådan her ud:

Public Class Main_form
dim i as integer = 3


Private Sub BtnHit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHit.Click

        Select Case i
            Case 3
                ' Her sker der så noget
                i = 4
            Case 2
                ' Her sker der mere
                i = 5
            Case 3
                ' og endnu mere
        End Select
    End Sub

Det virkede fint, men så blev jeg enig med mig selv om jeg ville fjerne så meget kode som muligt fra min main menu og smide det i function's og sub's
Så jeg har en class fil som indeholder alt det.
Min class hedder så funktion (ind til jeg kommer op med et bedre navn) og der finder du så min sub som hedder hit og det ser sådan her ud:

Private Sub BtnHit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHit.Click
        Dim del_kort As New funktion
        del_kort.hit()
    End Sub


og min hit har i jo så set.
Og der kommer jeg så aldrig videre end den bliver på 3
Avatar billede arne_v Ekspert
31. oktober 2010 - 17:27 #5
Dim del_kort As New funktion
        del_kort.hit()

laver jo en ny instans af klassen funktion hver gang.

Det duer ikke !
Avatar billede mega-hawk Nybegynder
31. oktober 2010 - 17:34 #6
ah javel ja.
Så kan jeg sgu da godt forstå jeg ikke komme nogen steder.

Hva gør jeg så? ;o)
Avatar billede arne_v Ekspert
31. oktober 2010 - 17:37 #7
Måske:

Public Class funktion
    dim i as integer = 1
    Public Sub hit()
        Select Case i
            Case 1
                docase1()
                i = 2
            Case 2
                docase2()
                i = 3
            Case 3
                docase3();
        End Select
...
  Private Sub docase1
      ' whatever
  End Sub
  Private Sub docase2
      ' whatever
  End Sub
  Private Sub docase3
      ' whatever
  End Sub

men ingen funktioner klasse, da den her kode tilsyneladende kræver brug af form klassens data.
Avatar billede mega-hawk Nybegynder
31. oktober 2010 - 18:33 #8
Hm nu skal jeg lige være med her.

De der private sub docase1 osv... skal de være på min main form eller skal de være i min funtion også?

Og ja min select case angiver hvor langt jeg er kommet i min række af kort og om der skal deles flere ud og mine kort er selvfølgelig mine pictureboxes på min main form
Avatar billede arne_v Ekspert
01. november 2010 - 03:54 #9
Mig der skrev forkert.

De skal være i din form klasse.
Avatar billede mega-hawk Nybegynder
01. november 2010 - 16:42 #10
Nååååår ja klart...
Det var da egentlig en ret smart og logisk måde at løse problemet på det kan jeg da godt se.

Mange tak igen arne... Du kender det jo... smid et svar ;o)
Avatar billede arne_v Ekspert
01. november 2010 - 17:21 #11
svar
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