Error con Gets

Error con Gets

Postby AngelSalom » Mon Apr 10, 2006 9:18 am

A ver gente, una cosa que parece bastante simple, pero que no consigo hacer que funcione.

REDEFINE GET oGetFin1 VAR cTeclaFin1 ID 4004 OF oDlg
REDEFINE GET oGetFin2 VAR cTeclaFin2 ID 4005 OF oDlg
REDEFINE GET oGetFin3 VAR cTeclaFin3 ID 4006 OF oDlg

oGetFin2:bChange:={|nKey| Iif (nKey=13, oGetFin3:SetFocus(),oGetFin1:SetFocus())}

En teoria si se pulsa cualquier tecla que no sea el enter en oGetFin2, debe dar el foco a ogetfin1, no? Pues bueno, esto produce el siguiente error :

Application
===========
Path and name: C:\si\Trabajo\fwh\sifac2\fac.exe (32 bits)
Size: 6,020,096 bytes
Time from start: 0 hours 0 mins 28 secs
Error occurred at: 10/04/2006, 11:15:27
Error description: Error BASE/1075 Argument error: >
Args:
[ 1] = U
[ 2] = N 5

Stack Calls
===========
Called from: => GET:OVERSTRIKE(747)
Called from: => TWINDOW:KEYCHAR(853)
Called from: => TWINDOW:HANDLEEVENT(0)
Called from: => TWINDOW:HANDLEEVENT(0)
Called from: => _FWH(0)
Called from: => DIALOGBOX(0)
Called from: => TDIALOG:ACTIVATE(0)
Called from: => TPVFINALIZAR(915)

Un cable, please!!!
Gracias.
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 708
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Postby Antonio Linares » Mon Apr 10, 2006 10:01 am

Angel,

la primera parte no te hace falta, porque ENTER (13) saltará al siguiente control. Para que con otra letra salte al primero, lo suyo sería ponerle una validación tipo VALID ( oGet2:oJump := oGet1, .t. )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41482
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby AngelSalom » Mon Apr 10, 2006 10:15 am

Puedes ser un poco más concreto?
No consigo hacer que funcione. Poniendo ese valid, igual salta al tercer get.

Gracias.
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 708
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Postby Antonio Linares » Mon Apr 10, 2006 11:05 am

Angel,

En este ejemplo verás como al pulsar enter en el segundo GET se salta al primero. Yo he usado un If( .t., ... Tu deberás poner ahi la condición que quieras para que salte al primero ó no:
Code: Select all  Expand view
#include "Fivewin.ch"

FUNCTION MAIN()

   local oDlg, oGet1, oGet2, oGet3
   local cVar1 := Space( 10 ), cVar2 := Space( 10 ), cVar3 := Space( 10 )

   DEFINE DIALOG oDlg

   @ 1, 1 GET oGet1 VAR cVar1
   @ 2, 1 GET oGet2 VAR cVar2 VALID( If( .t., oGet2:oJump := oGet1,), .t. )
   @ 3, 1 GET oGet3 VAR cVar3

   ACTIVATE DIALOG oDlg;
             CENTER

RETURN NIL
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41482
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 25 guests