Hi,

Here is a proven section of code to denote a Harbour / Clipper achoice()
difference.  From looking at the difference, I believe it is a simple fix.
But this I cannot guarantee (yet).

Anyways, the code + comments will summarize everything.  But in a nutshell,
it is this:  the cursor position of the called function doesn't always show
up vertically where the choice selection is.

Thank you in advance for taking a concern in this.

___CODE:___

// The seconds() should appear to the right of the currently highlighted row
// This works until you arrow past the top of the list or use the right/left
arrows, in which case it
// always uses the last row of the screen coordinates to print the seconds.

// In this program, there are only 5 rows for 10 letters of the alphabet, so
in the case described above,
// it will always print the seconds on the 5th (bottom) row when left/right
is hit, or the top array
// value (a) is reached.

// For others' curiosity sake, I found this bug because in my program I am
trying to highlight an item in red,
// or position a get text field on the row they are on.

// This has been tested in Harbour and CL52e, and Clipper does it correctly
where the seconds() printed text is not
// positioned incorrectly.

Func main()
    cls
    a:={"a","b","c","d","e","f","g","h","i","j"}
    x:=achoice(1,1,5,20,a,NIL,"myfunc")
Return Nil

Func Myfunc()
    setpos(row(),Col()+20)
    devout(str(seconds()))
    if lastkey()=13
        x:=1
    ELSE
        x:=2
    endif
return x



-- 
smu johnson <smujohn...@gmail.com>
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to