Hola Red2, si estas en un TAB entonce debes activar la clausula ON CHANGE en el DEFINE TAB.
Seria algo como esto
Code: Select all
#include "hmg.ch"
Function Main
Local aRows [20] [3]
LOCAL nIdioma:=1
LOCAL sFont:="Arial"
LOCAL sSize:=10
LOCAL gFont:="Arial"
LOCAL gSize:=10
LOCAL aColor[4]
aColor[1]:=0
aColor[2]:=0
aColor[3]:=0
aColor[4]:=0
aRows [1] := {'Simpson','Homer','555-5555'}
aRows [2] := {'Mulder','Fox','324-6432'}
aRows [3] := {'Smart','Max','432-5892'}
aRows [4] := {'Grillo','Pepe','894-2332'}
aRows [5] := {'Kirk','James','346-9873'}
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 640 HEIGHT 480 ;
TITLE 'HMG Demo' ;
MAIN
DEFINE MAIN MENU
DEFINE POPUP 'Test'
MENUITEM 'Get Grid Header' ACTION MsgInfo ( Form_1.Tab_1(4).Grid_1.Header(1) )
MENUITEM 'Set Grid Header' ACTION Form_1.Tab_1(4).Grid_1.Header(1) := 'New'
SEPARATOR
MENUITEM 'Set Grid Cell' ACTION Form_1.Tab_1(4).Grid_1.Cell(1,1) := 'New'
MENUITEM 'Get Grid Cell' ACTION MsgInfo ( Form_1.Tab_1(4).Grid_1.Cell(1,1) )
SEPARATOR
END POPUP
END MENU
DEFINE TAB Tab_1 ;
AT 10,10 ;
WIDTH 600 ;
HEIGHT 400 ;
VALUE 1 ;
TOOLTIP 'Tab Control' ;
FONT "COURIER NEW" SIZE 9 ON CHANGE f_change()
PAGE 'Page 1' IMAGE "exit.bmp"
@ 30 , 10 LABEL SAY_02 VALUE IF(nIdioma=1,"Razón social","Company name") TRANSPARENT AUTOSIZE FONT sFont SIZE sSize
@ 60 , 10 LABEL SAY_03 VALUE IF(nIdioma=1,"Nombre","Name") TRANSPARENT AUTOSIZE FONT sFont SIZE sSize
@ 90 , 10 LABEL SAY_04 VALUE IF(nIdioma=1,"Dirección","Adress") TRANSPARENT AUTOSIZE FONT sFont SIZE sSize
@ 120, 10 LABEL SAY_05 VALUE IF(nIdioma=1,"Población","Tows") TRANSPARENT AUTOSIZE FONT sFont SIZE sSize
@ 30,130 TEXTBOX Get_02 VALUE " " WIDTH 250 FONT gFont SIZE gSize MAXLENGTH 35
@ 60,130 TEXTBOX Get_03 VALUE " " WIDTH 250 FONT gFont SIZE gSize MAXLENGTH 35
@ 90,130 TEXTBOX Get_04 VALUE " " WIDTH 250 FONT gFont SIZE gSize MAXLENGTH 35
@ 120,130 TEXTBOX Get_05 VALUE " " WIDTH 250 FONT gFont SIZE gSize MAXLENGTH 35
END PAGE
PAGE 'Page &2' IMAGE "info.bmp"
DEFINE RADIOGROUP R1
ROW 100
COL 100
OPTIONS { '1','2','3' }
VALUE 1
END RADIOGROUP
END PAGE
PAGE 'Page 3' IMAGE "check.bmp"
@ 100,250 SPINNER Spinner_1 ;
RANGE 0,10 ;
VALUE 5 ;
WIDTH 100 ;
TOOLTIP 'Range 0,10' ;
ON CHANGE PlayBeep()
END PAGE
PAGE 'Page 4' IMAGE "button.bmp"
@ 50,50 GRID Grid_1 ;
WIDTH 200 ;
HEIGHT 330 ;
HEADERS {'Last Name','First Name','Phone'} ;
WIDTHS {140,140,140};
ITEMS aRows ;
VALUE 1
END PAGE
END TAB
END WINDOW
Form_1.Center
FORM_1.Activate
Return Nil
STATIC PROC f_change()
LOCAL n_value := form_1.tab_1.value
IF n_value=4
Form_1.Grid_1.Setfocus
ENDIF
RETURN