Re: Different behaviour of function keyboard to previous version
Claudia,
If your issue is with the Keyboard() function, then surely this sample can
be greatly reduced. Kindly remove everything that's NOT absolutley needed to
exhibit the problem.
TIA,
Ron
"Claudia" <dr.claudia.neumann@gmx.de> wrote in message
news:h51lq1$l59$00$1@news.t-online.com...
> Hi all!
>
> Problem: update from xHarbour 1.0.0-beta1 to 1.2.1
> Function keyboard does not behave as expected.
>
> The code below shows the difference between 1.0.0 and 1.2.1. With F9 in
> 1.0.0 you get to " END" whereas with 1.2.1 the program stays in
> achoice(). (xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6509),
> selfcompiled, Debian Linux Lenny, Kernel 2.6.24)
>
> Best Regards
>
> Claudia
>
> Example:
> #include "inkey.ch"
>
> PROCEDURE main()
> local testvar
> local astruct:= {{ "MITEM", "C",8,0}}
>
> REQUEST DBFCDX
>
> SetColor("w/b,w+/b,w/r,n/w")
>
> SET EVENTMASK TO INKEY_ALL
> SetKey(K_F8, {|| fkeyb1() } )
> SetKey(K_F9, {|| fkeyb2() } )
>
> if !file("mnf.dbf")
> dbcreate("mnf",astruct,"DBFCDX",.t.,"mnf")
> use mnf alias mnf
> append blank
> replace mnf->mitem with "A-Menue3"
> append blank
> replace mnf->mitem with "B-Menue3"
> append blank
> replace mnf->mitem with "C-Menue3"
> append blank
> replace mnf->mitem with "D-Back"
> close mnf
> endif
>
> do while .t.
> clear screen
>
> @ 3, 10 say ' Menue 1 '
> @ 5, 10 prompt 'A-Menue2' message 'Menu Message 1'
> @ 7, 10 prompt 'B-Menue2' message 'Menu Message 2'
> @ 9, 10 prompt 'C-Menue2' message 'Menu Message 3'
> @ 11, 10 prompt 'D-quit' message 'to quit program'
>
> @ 14, 10 say 'Press F8 to use automatic keyboard input "aabc" '
> @ 15, 10 say 'Press F9 to use automatic keyboard
> input "ba"+chr(13)+"bc" '
> @ 16, 10 say 'type D to quit program'
> menu to testvar
>
> do case
> case testvar == 1
> newmenue1()
> case testvar == 2
> fmenunew()
> case testvar == 3
> newmenue1()
> case testvar == 4
> quit
> endcase
>
> enddo
> return
>
>
> function newmenue1()
> local testvar
>
> do while .t.
> clear screen
>
> @ 3, 10 say ' Menue 2 '
>
> @ 5, 10 prompt 'A-Menue3' message 'Menu Message 1'
> @ 7, 10 prompt 'B-Menue3' message 'Menu Message 2'
> @ 9, 10 prompt 'C-Menue3' message 'Menu Message 3'
> @ 11, 10 prompt 'D-Back' message 'to Menue 1'
>
> menu to testvar
>
> do case
> case testvar == 1
> newmenue2()
> case testvar == 2
> newmenue2()
> case testvar == 3
> newmenue2()
> case testvar == 4
> return .t.
> endcase
> enddo
> return
>
>
> function newmenue2()
> local testvar
>
> do while .t.
> clear screen
>
> @ 3, 10 say ' Menue 3 '
>
> @ 5, 10 prompt 'A-Menue4' message 'Menu Message 1'
> @ 7, 10 prompt 'B-Menue4' message 'Menu Message 2'
> @ 9, 10 prompt 'C-Menue4' message 'Menu Message 3'
> @ 11, 10 prompt 'D-Back' message 'to Menue 2'
>
> menu to testvar
>
> do case
> case testvar == 1
> newmenue3()
> case testvar == 2
> newmenue3()
> case testvar == 3
> newmenue3()
> case testvar == 4
> return .t.
> endcase
> enddo
> return
>
>
> function newmenue3()
> local testvar
>
> do while .t.
> clear screen
>
> @ 3, 10 say ' Menue 4 '
>
> @ 5, 10 prompt 'A-Menue5' message 'Menu Message 1'
> @ 7, 10 prompt 'B-Menue5' message 'Menu Message 2'
> @ 9, 10 prompt 'C-Menue5' message 'Menu Message 3'
> @ 11, 10 prompt 'D-Back' message 'to Menue 1'
>
> menu to testvar
>
> do case
> case testvar == 1
> endpage()
> case testvar == 2
> endpage()
> case testvar == 3
> endpage()
> case testvar == 4
> return .t.
> endcase
> enddo
> return
>
>
> function endpage()
>
> clear screen
>
> @ 3, 10 say ' End '
> wait
>
> return
>
> function fmenunew()
> local aitem,ncount,i,nn1
> local testvar
> use mnf.dbf alias mnf new
> count to ncount
> dbgotop()
> aitem:=array(ncount)
>
> for i:=1 to ncount
> aitem[i]:=mnf->mitem
> skip
> next
> close all
> testvar:=1
>
> do while .t.
> clear screen
>
>
> @ 3, 10 say ' Menue 2 '
>
> testvar := achoice(5,10,5+ncount,19,aitem,.t.,"",testvar)
>
> do case
> case testvar == 1
> newmenue2()
> case testvar == 2
> newmenue2()
> case testvar == 3
> newmenue2()
> case testvar == 4
> return .t.
> endcase
> enddo
> return
>
> function fkeyb1()
>
> Keyboard "aabc"
>
> return
>
>
> function fkeyb2()
>
> Keyboard "ba"+chr(13)+"bc"
>
> return
>
|