I don’t understand exactly why you have to call tabtip.exe.
What I do is like that. I use a build in keyboard.
Here is my code for the num-keyboard.
Best regards,
Otto
- Code: Select all Expand view
function f_menge( oDlgRg, cAbbruch)
LOCAL oBtn1
LOCAL oBtn2
LOCAL oBtn3
LOCAL oBtn4
LOCAL oBtn5
LOCAL oBtn6
LOCAL oBtn7
LOCAL oBtn8
LOCAL oBtn9
LOCAL oBtn0
LOCAL oBtn11
LOCAL oBtnEnd
LOCAL oDlg
LOCAL lSave := .f.
LOCAL oSay
LOCAL cNummer := "1 "
LOCAL lStart := .t.
*--------------------------------------------
if eof()=.f.
IF lisch->rgnr = 1
msginfo("Mengenänderung nicht erlaubt")
RETURN nil
ENDIF
if left(lisch->artnum,4) ="G__E" .OR. left(lisch->artnum,4) ="G__A"
msginfo("Bei Gutschein Mengenänderung nicht erlaubt")
RETURN nil
ENDIF
DEFINE DIALOG oDlg ;
TITLE "Menge "+ left(lisch->bezeichnun,25) +" "+str(lisch->preis) ;
COLOR 0, val(Setup():FarbeMenge) ;
FROM 1,45 TO 32,95 ;
STYLE WS_CAPTION
@ 0,10 say oSay PROMPT cNummer of oDlg font Setup():oFntdISPLAY
oSay:SetText(cNummer)
oSay:refresh()
@ 2, 1 SBUTTON oBtn1 PROMPT "1" OF oDlg ACTION (IIF( lstart=.t.,(lStart:=.f., cNummer:=""), ) , cNummer:=cNummer+"1", oSay:SetText(cNummer),oSay:refresh() ) SIZE 38, 38 FONT Setup():oFntBrowser COLORS CLR_WHITE,RGB(44,72,93) , CLR_WHITE CRYSTAL
@ 2, 8.9 SBUTTON oBtn2 PROMPT "2" OF oDlg ACTION (IIF( lstart=.t.,(lStart:=.f., cNummer:=""), ) , cNummer:=cNummer+"2", oSay:SetText(cNummer),oSay:refresh() ) SIZE 38, 38 FONT Setup():oFntBrowser COLORS CLR_WHITE,RGB(44,72,93) , CLR_WHITE CRYSTAL
@ 2, 16.5 SBUTTON oBtn3 PROMPT "3" OF oDlg ACTION (IIF( lstart=.t.,(lStart:=.f., cNummer:=""), ) , cNummer:=cNummer+"3", oSay:SetText(cNummer),oSay:refresh() ) SIZE 38, 38 FONT Setup():oFntBrowser COLORS CLR_WHITE,RGB(44,72,93) , CLR_WHITE CRYSTAL
@ 5, 1 SBUTTON oBtn4 PROMPT "4" OF oDlg ACTION (IIF( lstart=.t.,(lStart:=.f., cNummer:=""), ) , cNummer:=cNummer+"4", oSay:SetText(cNummer),oSay:refresh() ) SIZE 38, 38 FONT Setup():oFntBrowser COLORS CLR_WHITE,RGB(44,72,93) , CLR_WHITE CRYSTAL
@ 5, 8.9 SBUTTON oBtn5 PROMPT "5" OF oDlg ACTION (IIF( lstart=.t.,(lStart:=.f., cNummer:=""), ) , cNummer:=cNummer+"5", oSay:SetText(cNummer),oSay:refresh() ) SIZE 38, 38 FONT Setup():oFntBrowser COLORS CLR_WHITE,RGB(44,72,93) , CLR_WHITE CRYSTAL
@ 5, 16.5 SBUTTON oBtn6 PROMPT "6" OF oDlg ACTION (IIF( lstart=.t.,(lStart:=.f., cNummer:=""), ) , cNummer:=cNummer+"6", oSay:SetText(cNummer),oSay:refresh() ) SIZE 38, 38 FONT Setup():oFntBrowser COLORS CLR_WHITE,RGB(44,72,93) , CLR_WHITE CRYSTAL
@ 8, 1 SBUTTON oBtn7 PROMPT "7" OF oDlg ACTION (IIF( lstart=.t.,(lStart:=.f., cNummer:=""), ) , cNummer:=cNummer+"7", oSay:SetText(cNummer),oSay:refresh() ) SIZE 38, 38 FONT Setup():oFntBrowser COLORS CLR_WHITE,RGB(44,72,93) , CLR_WHITE CRYSTAL
@ 8, 8.9 SBUTTON oBtn8 PROMPT "8" OF oDlg ACTION (IIF( lstart=.t.,(lStart:=.f., cNummer:=""), ) , cNummer:=cNummer+"8", oSay:SetText(cNummer),oSay:refresh() ) SIZE 38, 38 FONT Setup():oFntBrowser COLORS CLR_WHITE,RGB(44,72,93) , CLR_WHITE CRYSTAL
@ 8, 16.5 SBUTTON oBtn9 PROMPT "9" OF oDlg ACTION (IIF( lstart=.t.,(lStart:=.f., cNummer:=""), ) , cNummer:=cNummer+"9", oSay:SetText(cNummer),oSay:refresh() ) SIZE 38, 38 FONT Setup():oFntBrowser COLORS CLR_WHITE,RGB(44,72,93) , CLR_WHITE CRYSTAL
@ 11, 8.9 SBUTTON oBtn0 PROMPT "0" OF oDlg ACTION (IIF( lstart=.t.,(lStart:=.f., cNummer:=""), ) , cNummer:=cNummer+"0", oSay:SetText(cNummer),oSay:refresh() ) SIZE 38, 38 FONT Setup():oFntBrowser COLORS CLR_WHITE,RGB(44,72,93) , CLR_WHITE CRYSTAL
@ 11, 1 SBUTTON oBtn0 PROMPT "," OF oDlg ACTION (IIF( lstart=.t.,(lStart:=.f., cNummer:=""), ) , cNummer:=cNummer+".", oSay:SetText(cNummer),oSay:refresh() ) SIZE 38, 38 FONT Setup():oFntBrowser COLORS CLR_WHITE,RGB(44,72,93) , CLR_WHITE CRYSTAL
@ 2, 26 SBUTTON oBtnEnd PROMPT "Abbruch" OF oDlg ACTION (lSave := .f.,oDlg:END()) SIZE 38, 38 FONT Setup():oFntBrowser COLORS CLR_WHITE,RGB(44,72,93) , CLR_WHITE CRYSTAL
@ 5, 26 SBUTTON oBtnEnd PROMPT "Clear" OF oDlg ACTION (cNummer := "",oSay:SetText(cNummer),oSay:refresh()) SIZE 38, 38 FONT Setup():oFntBrowser COLORS CLR_WHITE,RGB(44,72,93) , CLR_WHITE CRYSTAL
@ 8 ,26 SBUTTON oBtnEnd PROMPT "Speichern" OF oDlg ACTION (cNummer := AllTRim(oSay:GetText(cNummer)),lSave:=.t.,oDlg:END()) SIZE 55, 55 FONT Setup():oFntBrowser COLORS CLR_WHITE,RGB(44,72,93) , CLR_WHITE CRYSTAL
ACTIVATE DIALOG oDlg ON INIT (cNummer := "1",oSay:SetText(cNummer),oSay:refresh())
if (val(cNummer)) > 999
cNummer := ""
lSave := .F.
msginfo( "Menge zu groß" + CRLF + "Max. € 999")
elseif val(cNummer) =0
cNummer := ""
lSave := .F.
msgAlert("keine Menge eingegeben","Vorsicht")
else
if lSave=.T.
select lisch
RLOK()
REPLACE lisch->menge WITH val(cNummer)
REPLACE lisch->wert WITH lisch->menge * lisch->preis
UNLOK()
else
cAbbruch :=" Abbruch"
ENDIF
endif
endif
RETURN nil
//----------------------------------------------------------------------------//