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