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