Clipper/FiveWin - Por que no me fucniona el foco?

 
Vista:

Por que no me fucniona el foco?

Publicado por Gabriel (31 intervenciones) el 22/09/2005 21:05:19
Buenas a todos.
¿Alguien sabría decirme porque no me vuelve al foco que le indico?
.
STATIC aReci
.
.
.

REDEFINE GET aReci[2] VAR aReci[1] ID 1100 OF oDlg ;
VALID LeeReci(@nCobra,@nSaldo,oDlg) ;
UPDATE

REDEFINE GET aReci[8] VAR aReci[7] ID 1200 OF oDlg ;
UPDATE
.
.
.
.

FUNCTION LeeReci(nCobra,nSaldo,oDlg)

.
.
.
DBSEEK(aReci[1])
IF .NOT. FOUND()
aReci[1]:=SPACE(12)
aReci[2]:SetFocus()
ENDIF
oDlg:UPDATE()
RETURN (.T.)

Me estan volviendo loco el tema de moverme como yo quiera entre objetos. Por dios !!!!

Ehh mil gracias que muy pocas veces sabemos agradecer como os mereceis.. Y tu, tocayo, eres una pedazo de máquina..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Por que no me fucniona el foco?

Publicado por Nelson Nunes de Araujo (20 intervenciones) el 23/12/2005 00:18:42
Ola,

experimente fazer o seguinte :

DBSEEK(aReci[1])
IF .NOT. FOUND()
aReci[1]:=SPACE(12)
xSetFocus( aReci[2] )
aReci[2]:Refresh()
ENDIF
oDlg:UPDATE()
RETURN (.T.)

Nelson Nunes de Araujo
Brasil, 22/12/2005
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Por que no me fucniona el foco?

Publicado por Armando Bucio (1 intervención) el 23/12/2005 04:03:06
usas clipper duro puro o fw?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Por que no me fucniona el foco?

Publicado por manuramos (19 intervenciones) el 23/12/2005 17:57:42
Seguramente el oDlg:Update() te roba el foco y lo coloca al primer TABSTOP. Intenta colocar aRec[2]:SetFocus() justo antes del RETURN .T.

De todas formas, si haces:

IF !Found()
aReci[1] := SPACE(12)
oDlg:Update()
RETURN .F.
ENDIF
RETURN .T.

Al no encontrar el cliente devuelve .F. y no sale del GET. Por lo tanto, no pierde el foco.

Por otra parte, si en lugar de aReci[1] := SPACE(12)
haces aReci[2]:SetText( SPACE(12) )

no necesitas el oDlg:Update() y no te roba el foco. Quedaría:

IF !Found()
aReci[2]:SetText( SPACE(12) )
RETURN .F.
ENDIF
RETURN .T.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Por que no me fucniona el foco?

Publicado por Gabriel Martin (31 intervenciones) el 27/12/2005 17:51:05
Gracias Manuramos, pero al ejecutar el programa me indica que no reconoce el procedimientos SetText

Clip 5.3, FW 2.4, Blinker 7

LPV Gabriel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Por que no me fucniona el foco?

Publicado por manuramos (19 intervenciones) el 27/12/2005 19:03:55
Tienes razón.
Perdona, ha sido un lapsus.
SetText() es para los SAY´s, para los GET's es CTEXT() pero funciona igual.
oReci[2]:cText( ... )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar