Hej, Hej Hej Om du ska kalla om en objektvariabel är satt eller inte skall du använda "Variabel Is Nothing". Men det finns ett fall då du inte kan använda den. Det är när du deklarerat varabeln "as New". Eftersom om variabel saknar en instans kommer en en instans att skapas och retuneras. Så enkelt och så värdefullt för mej. Vad jag förstår ska man inte sätta "as New" i deklarationen, eftersom VB då måste kontrollera om variablen är instansierad varje gång man anropar den. >if (objektMatris(rad,col) is nothing)=false then... Jepp, dels därför. Får en "liten" prestandaförlust. Det beror väl ändå på hur man har skrivit sin get-metod i klassen. Kan man testa om ett objekt är "nothing" i VB
som en van javaprogrammerare vill jag kunna testa om mitt objekt är NULL. t ex
if(objektMatris(rad,col) != NULL){
//gör något
}
Jag har försökt med en massa saker, men inget funkar. Snälla Hjälp... Jag sitter med ett VB-projekt som jag GÄRNA skulle vilja komma vidare med
Klassen har jag gjort själv, finns det något jag kan ändra där?
VB stödjer ju objektorientering, men tydligen inte alla författare av VB-böcker. Har ni några tips om bra böcker i ämnet?Sv: Kan man testa om ett objekt är "nothing" i VB
>VB stödjer ju objektorientering.
Det var väl att ta i ,det är en hel del som fattas för att
kallas OOP.
Gammal disskusion ,net börjar kanske komma ikapp.
SvenSv: Kan man testa om ett objekt är "nothing" i VB
Testa det här
This example uses the IsObject function to determine if an identifier represents an object variable. MyObject and YourObject are object variables of the same type. They are generic names used for illustration purposes only.
Dim MyInt As Integer, YourObject, MyCheck ' Declare variables.
Dim MyObject As Object
Set YourObject = MyObject ' Assign an object reference.
MyCheck = IsObject(YourObject) ' Returns True.
MyCheck = IsObject(MyInt) ' Returns False.
undrar
SvenSv: Kan man testa om ett objekt är "nothing" i VB
<code>
Option Explicit
Private Conn As ADODB.Connection
Private rsTemp As New ADODB.Recordset
Private Sub Command1_Click()
If rsTemp Is Nothing Then
Set rsTemp = New ADODB.Recordset
Set rsTemp.ActiveConnection = Conn
rsTemp.Source = "SELEC * FROM TabellNamn"
rsTemp.CursorType = adOpenForwardOnly
rsTemp.LockType = adLockReadOnly
End If
rsTemp.Open
rsTemp.Close
End Sub
Private Sub Form_Load()
Set Conn = New ADODB.Connection
Conn.Open ""
End Sub
Private Sub Form_Unload(Cancel As Integer)
Conn.Close
Set Conn = Nothing
End Sub
</code>Sv: Kan man testa om ett objekt är "nothing" i VB
jag skrev:
if (objektMatris(rad,col) is nothing)=false then...
det verkar bakvänt, men funkar. Har nån något snyggare sätt får ni gärna berättaSv: Kan man testa om ett objekt är "nothing" i VB
Sv: Kan man testa om ett objekt är "nothing" i VB
du kan även köra en annan bakvänd variant i stil med:
<code>
if not objektMatris(rad,col) is nothing then...
</code>
//Emma - som hellre använder java eller smalltalk för OOSv: Kan man testa om ett objekt är "nothing" i VB
Dels för att du inte kan kontrollera om variabeln är Nothing. Kommer ju alltid att retunera ett objekt.Sv: Kan man testa om ett objekt är "nothing" i VB
I dem brukar man använda sig av
<code>
private function getObject as Object
if objekt Is Nothing then
set objekt = new Objekt
end if
set getObject = objekt
end Function
</code>
Om koden är skriven så kan jag inte kolla om mitt objekt är Nothing eller ej eftersom den alltid returnerar, men om enbart sista kodraden finns (set getObject = objekt) går kontrollen att göra - och måste göras pga av att man annars riskerar körningsfel.
//Emma