Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


"Object reference not set to an instance of an object"

Postades av 2006-10-17 18:37:05 - Jonatan Nyqvist, i forum vb.net, Tråden har 3 Kommentarer och lästs av 1141 personer

Jag håller på med ett "sänka skepp" -spel, och på grund av att jag är riktigt dålig på hela det objektorienterade tänket i vb.net har jag fastnat i grafikdelen.

Jag vill rita ut ett rutmönster men för att lättast kunna kontrollera vilka rutor man klickar på har jag försökt lösa det med att göra rutorna till en egen klass som var och en innehåller info om sig själva (om det är ett skepp på rutan osv).

Här är ett utdrag av den viktigaste koden jag använder:

Public Class gridControl
    Public conSize As Integer = 10 'variabel som håller i storleken på fältet
    Dim cGrid(conSize, conSize) As gRuta

    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        cGrid(0, 0).gShip = True
    End Sub
End Class

Public Class gRuta
    Public gShip As Boolean
    Public x, y As Integer

    Public Ruta As Rectangle
End Class

Men när jag kör den här koden hamnar jag i "cGrid(0,0).gShip = True" -raden och får klagomålet: "Object reference not set to an instance of an object.".
Så vitt jag förstår måste nånting deklareras som New nånstans, men det går tydligen inte att deklarera cGrid(conSize,conSize) med New, då den klagar på att man inte får göra det med indexerade variabler.

Hur ska jag göra, tänker jag åt skogen? Jag kanske borde lägga ner mitt programmerande helt, eftersom jag aldrig får pli på det här, hehe.
Om du hinner och orkar får du gärna svara även lite exempelkod.
/Jonte


Svara

Sv: "Object reference not set to an instance of an object"

Postades av 2006-10-17 18:50:58 - Simon Dahlbacka

du måste loopa igenom varje cell i cGrid och skapa en ny gRuta i varje. I c# skulle jag göra så här

for (int i=0;i<conSize;i++) {
    for (int j=0;j<conSize;j++) {
        cGrid[i, j] = new gRuta();
    }
}


Svara

Sv:"Object reference not set to an instance of an object"

Postades av 2006-10-17 19:07:49 - Jonatan Nyqvist

Mjo, fast det fungerar inte bättre för det, variabeln deklareras utanför någon sub eller function eller liknande, och där kan man inte skriva annan kod än deklarera variabler och liknande.

Dessutom är det inte problemet med hur jag gör för att deklarera variabeln egentligen, tror jag. Och att skriva "Dim cGrid(conSize, conSize) As New gRuta" ger oavsett koden runtomkring ett fel, eftersom man inte tydligen kan deklarera indexerade variabler.

Men tack ändå =)


Svara

Sv: "Object reference not set to an instance of an object"

Postades av 2006-10-17 20:11:21 - Simon Dahlbacka

<b>Dessutom är det inte problemet med hur jag gör för att deklarera variabeln egentligen, tror jag.</b>
Njae, egentligen inte, grejen är att du har deklarerat matrisen (eller vad du nu kallar den), men den innehåller fortfarande ingenting annat än Nothing eftersom du inte satt nåt dit.. så du måste göra nåt i stil med

Dim i As Integer
For i = 0 To conSize - 1
     Dim j As Integer
     For j = 0 To conSize - 1
          cGrid(i, j) = New gRuta
     Next j
Next i


för att ha nånting i de enskilda cellerna som du sen kan använda


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 725
27 958
271 751
339
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies