Tulee "Type mismatch" ja VB valittaa kohtaa "If wsckimage.Tag <> 1 Then"
Mikä vikana?
Private Sub wsckImage_DataArrival(ByVal bytesTotal As Long)
Dim str$
If wsckimage.Tag <> 1 Then
If Dir("Temp.jpg", vbNormal) <> "" Then
Kill "Temp.jpg"
End If
Open "Temp.jpg" For Binary As #1
wsckimage.Tag = 1
End If
wsckimage.GetData str, vbString, bytesTotal
Put #1, , str
If Right(str, 4) = "$END" Then
wsckimage.Tag = 0
Close #1
imgImage.Picture = LoadPicture("Temp.jpg")
wsckimage.SendData "ok"
End If
End SubOnkohan nimi wsckimage varmasti oikein ?
EI :Dd0=D0D=D=
Kulma kirjoitti:
Tulee "Type mismatch" ja VB valittaa kohtaa "If wsckimage.Tag <> 1 Then"
Mikä vikana?
Voisko olla vahingossa lainausmerkeissä se ykkönen (tai sitten jotain muuta kuin ykkönen) siellä wsckimage.Tag -ominaisuudessa? Sillon ainakin tulee "Type mismatch" jos on lainausmerkit siellä.
Nannohiiri kirjoitti:
EI :Dd0=D0D=D=
Haluatko selittää?
Tässä lienee kyseessä "datatype coercion" -ongelma... eli jos Tag on vaikkapa tyhjä string, niin silloin sitä ei voi verrata numeroon ja syntyy virhe. Joten tämä ongelma korjaantuu yksinkertaisesti sillä, että muuntaa Tagin ensin numeroksi:
If Val(wsckimage.Tag) <> 1 Then
Kannattaa olla tarkkana muuttujatyyppien kanssa.
Tosiaankin jos Tagille ei ole annettu arvoa, tulee juuri tuo virheilmoitus.
Aihe on jo aika vanha, joten et voi enää vastata siihen.