webForumDet fria alternativet

Alternativ till "Public" VB.NET

.NET

1 svar · 199 visningar · startad av Torwald

Medlem sedan nov. 20044 inlägg
Frågan#1

Tjohej.
Jag har konfronterat ett problem. Jag skapar i mitt program PictureBoxes (med fiskbilder i, det är ett spel). Jag använder en function till detta. Själva "skapandet" av en picturebox gör man med:
Dim aFish As New System.Windows.Forms.PictureBox

Jag måste ha detta i en function för att kunna skapa ett visst antal fiskar när jag trycker på startknappen eller på formload. Därför kan jag inte använda Public när jag declarar, för då skapas bara en fisk på Formload, sedan skapas inga fler.

Detta är alltså problemet. Anledningen nu då till att jag måste använda något liknande public är att jag måste flytta fiskarna, och det gör jag med en annan funktion, movefishes(). Och i den functionen är inte aFish declarad längre.

Jag kan inte heller slå ihop funktionerna, och skapa 10 fiskar i en loop och sedan flytta dem i en annan, för då är aFish bara declarat i den loopen.

Panik, snälla hjälp mig!

Providar lite kod också:

Public Function AddNewButton() As System.Windows.Forms.PictureBox
    Dim aFish As New System.Windows.Forms.PictureBox
        Me.List.Add(aFish)
        HostForm.Controls.Add(aFish)
        aFish.Top = 10
        aFish.Left = 208 + Rnd(10) \* 500

        If aFish.Left \< 208 Then
            aFish.Left = 208 + Rnd(10) \* 100
        End If
        If aFish.Left + 60 \> 504 Then
            aFish.Left = 208 + Rnd(10) \* 200
        End If

        aFish.Tag = Me.Count
        aFish.Width = 60
        aFish.Height = 103
        aFish.Enabled = True
        aFish.BorderStyle = BorderStyle.None
        aFish.Image = Image.FromFile(Application.StartupPath & "/fish.gif")
        aFish.BringToFront()
    Return aFish

End Function

Public Function movefish()
    Dim i = 1
    For i = 0 To 10
        aFish.Tag(i).Top = aFish.Tag(i).Top + Rnd(10) \* 10 + 15
        'This is where aFish is undeclared.
        i = i + 1
    Next
End Function
Medlem sedan jan. 20012 204 inlägg
#2

"Protected", kanske, eller skapa objekt av dina fiskar.

249 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)