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 Function
Saan 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 Function
VB.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.