Se vc usa o arquivo ???_Publ.ch, insira a linha abaixo nele, se não usa, declare no início de sua aplicação. Necessita ser Publica:
Mou_Lin_S := Mou_Col_S := Mou_Lin_I := Mou_Col_I := 0
Substitua as seguintes funções´em seu código por estas:
Func Mouse() // verifica se tem mouse
Retu If( MPresent() , 1 , 0 )
Func MouseCur( Arg ) // mostra ou esconde o cursor do mouse
Arg := If( Arg = Nil , .f. , .t. )
If( Arg , MShow() , MHide() )
Retu Nil
Func MouseSet( Row , Col ) // posiciona o cursor
MSetPos( Row , Col )
Retu Nil
Func MouseBox( Arg1 , Arg2 , Arg3 , Arg4 ) // determina area de evento
Mou_Lin_S := Mou_Col_S := Mou_Lin_I := Mou_Col_I := 0
If Arg3 != MaxRow() .And. Arg4 != MaxCol()
Mou_Lin_S := Arg1
Mou_Col_S := Arg2
Mou_Lin_I := Arg3
Mou_Col_I := Arg4
ElseIf l_s != Nil .And. c_s != Nil .And. l_i != Nil .And. c_i != Nil
Mou_Lin_S:=l_s
Mou_Col_S:=c_s
Mou_Lin_I:=l_i
Mou_Col_I:=c_i
Endi
Retu Nil
Func MouseGet(Arg1,Arg2) // retorna botao esquerdo/direiro (enter/esc)
Loca nBotao:=0
If MLeftDown()
nBotao:=1
ElseIf MRightDown()
nBotao:=2
Endi
Arg1:=MRow()
Arg2:=MCol()
If nBotao=1
If Arg1<Mou_Lin_S .Or. Arg1>Mou_Lin_I .Or. Arg2<Mou_Col_S .Or. Arg2>Mou_Col_I
nBotao:=3
Endi
Endi
Retu (nBotao)