Problemas con la posición del puntero en los get
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Thu Nov 25, 2021 8:09 pm
by santidedos
Buenas tardes compañeros, estoy hace tiempo con un problema con el puntero. Me pasa que en las entradas de texto, cuando clikeo sobre ellas para empezar a escribir, el puntero aparece exactamente donde pinché, cuando en realidad deberia aparecer, o al principio del cuadro de texto si no hay nada escrito en él, independientemente de en qué lugar del cuadro haya clikeado, o, si hay una palabra escrita y clikeo al final, justo donde termina la palabra, independientemente de si clikeo justo sobre el final de la palabra, o más atrás. Alguien sabe como hacer para que las entradas funcionen correctamente? Gracias de antemano.
Re: Problemas con la posición del puntero en los get
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Mon Nov 29, 2021 1:34 am
by santidedos
Cómo estás? No lo pude hacer andar
Re: Problemas con la posición del puntero en los get
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Mon Nov 29, 2021 2:24 am
by JoseAlvarez
santidedos wrote:Cómo estás? No lo pude hacer andar
Hola,
Si publicas el codigo, sera mucho mas facil ayudarte
Re: Problemas con la posición del puntero en los get
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Mon Nov 29, 2021 12:48 pm
by karinha
pronto José. El código que pedistes, és +- asi:
- Code: Select all Expand view
// \samples\JOSE.PRG
#Include "FiveWin.ch"
FUNCTION Main()
LOCAL oDlg, oGet1, oGet2, cGet1 := "Jose Alvarez ", ;
cGet2:= "Cambiando Foco de Jose"
LOCAL lCambiaJose := .F., aGrad, oClp
aGrad := { { 0.30, CLR_WHITE, CLR_WHITE },{ 0.50, CLR_WHITE, CLR_WHITE } }
DEFINE DIALOG oDlg SIZE 400, 300 GRADIENT aGrad
oDlg:lHelpIcon := .F.
DEFINE CLIPBOARD oClp OF oDlg
@ 3, 1 GET oGet1 VAR cGet1 OF oDlg SIZE 100, 12 PICTURE "@K" UPDATE ;
VALID ( MsgInfo( "Valor antes del LostFocus " + cGet1), .T. )
// Bloquear PASTE y CTRL+V en un GET
oGet1:bGotFocus := { || oClp:SetText( '' ) }
oGet1:bChange = { || lCambiaJose := .T. }
oGet1:bLostFocus := { || If( lCambiaJose, Jose_Focus( oGet1 ), .T. ) }
@ 5, 1 GET oGet2 VAR cGet2 OF oDlg SIZE 100, 12 PICTURE "@!" UPDATE
ACTIVATE DIALOG oDlg CENTERED ;
ON INIT( oGet1:bGotFocus := { || oGet1:SetPos( 0 ), Nil }, ;
oGet1:SetFocus() )
RETURN NIL
FUNCTION Jose_Focus( oGet1 )
LOCAL cTxtJose
cTxtJose := oGet1:cText
// MsgInfo( "FiveWin The Best: " + cTxtJose )
oGet1:bGotFocus := { || oGet1:SetPos( 0 ), Nil }
oGet1:SetFocus()
RETURN( .T. )
// FIN / END
Regards, saludos.