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 Sub
Onkohan 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.