Eli käytän tälläistä koodia.
Private Sub Command17_Click()
KeyToObject("test").Cls
End Sub
Private Function KeyToObject(part As String) As PictureBox
On Error Resume Next
Select Case LCase(part)
Case "test"
KeyToObject = testpicturebox
End Select
End FunctionSaan kuitenkin seuraavan virheilmoituksen.
Run-time error '91: Object variable or With block variable not set
Mistä moinen mahtaisi johtua?
testpicturebox on PictureBox -objekti
index ei voi olla string
sen sijaan voisit taiteilla koko viritelmän toimimaan Type-moduulin kanssa
Ärsyttävää kun ei voi sitä kieltä kertoa...
Mutta oletetaan nyt, että tuo on VB6 (virheilmoituksen perusteella voisi olla se)
Jos kyseessä on VB6, vika on syntaksissa. Eli pitäisi olla:
Private Sub Command17_Click()
KeyToObject("test").Cls
End Sub
Private Function KeyToObject(part As String) As PictureBox
Select Case LCase(part)
Case "test"
Set KeyToObject = testpicturebox
End Select
End FunctionVB.Netissä esim. ei käytetät Setiä objektejakaan sijoitettaessa, mutta siinä ei tulisi esimerkkikoodilla tuota virheilmoitusta.
Freeze kirjoitti:
index ei voi olla string
sen sijaan voisit taiteilla koko viritelmän toimimaan Type-moduulin kanssa
Jos oikeen tarkkaan katsot, niin missään ei ole indexiä. Vaan kyseinen funktio haluaa stringimuotosen "key":n josta sitten katsotaan select casella, että mitä objektia haetaan ja palautetaan kyseiselle avaimelle kuuluva picturebox-objekti.
Grezille suuri kiitos, nyt toimii.
Aihe on jo aika vanha, joten et voi enää vastata siihen.