Eli jos inputboxilla kysyy jotain tietoa, niin miten voi havaita, onko käyttäjä painanut OK vai Cancel näppäintä?
Käytän VB 2005 Expressiä
Seuraava toimii VB6:ssa, voit kokeilla mitä 2k5 Express asiasta sanoo. Inputbox palauttaa nolla merkkiä pitkän stringin, kun painetaan Cancelia tai OK:ta inputboxin ollessa tyhjä. Ero näillä nolla stringeillä on se, että OK:n myötä varataan muuttujalle tilaa muistista, kun taas Cancel jättää varauksen tekemättä.
Private Sub Form_Click()
Dim tmp As String
tmp = InputBox("Test:", "Input")
If StrPtr(tmp) = 0 Then 'StrPtr kertoo muistivarauksen paikan
MsgBox "Cancel"
ElseIf LenB(tmp) = 0 Then 'LenB kertoo muuttujan pituuden bitteinä. Nopeampi kuin normaali Len
MsgBox "Zero lenght string"
Else
MsgBox tmp
End If
End SubExpress ei ilmeisesti tunne sellaisia kuin "StrPtr" tai "LenB". Len toimi kun perästä otti pois B:n mutta StrPtr on sille ihan outo käsite.
Katsopa tämä, kriittinen funktio on aivan lopussa: http://www.devx.com/vb2themax/Tip/19625
Juuri tätä kaipasinkin.
Kiitti metabolix!
Aihe on jo aika vanha, joten et voi enää vastata siihen.