Estoy echo un lio
Me parece que debe ser algún Update que tengo en el diálogo, pero no lo localizo.
Con el ejemplo testrad.prg que viene el \samples, he construido lo siguiente:
// Radio Buttons management sample
#include "FiveWin.ch"
//----------------------------------------------------------------------------//
function Main()
local oDlg, oRadMenu, oBrush
local nOption := 1
local bultos,oalbaran,obultos,osay,albaran
local ponotra :={|| if(noption==1,rtotal->bulto:="999",rtotal->bulto:="555"),oDlg:Update()}
SET _3DLOOK ON
if file ("Rtotal.DBF")
ferase ("Rtotal.DBF")
endif
DbCreate("Rtotal", ;
{ { "Expedicion","C", 12, 0 },;
{ "Bulto" ,"C", 3, 0 },;
{ "Precio" ,"N", 9, 2 } } )
dbusearea(.f.,,"rtotal",,.f.)
Rtotal->(Dbappend())
Rtotal->expedicion:="000000000001"
Rtotal->Bulto:="002"
albaran:=Rtotal->expedicion
bultos:=Rtotal->bulto
DEFINE DIALOG oDlg RESOURCE "Radios"
REDEFINE SAY osay ID 10 OF oDlg
REDEFINE SAY osay ID 11 OF oDlg
REDEFINE RADIO oRadMenu VAR nOption ID 110, 120 OF oDlg;
ON CHANGE eval(ponotra)
REDEFINE GET oalbaran VAR Albaran ID 200 OF oDlg Update;
Valid (Albaran:= Padl(alltrim(Albaran),12,"0"),oDlg:Update())
REDEFINE GET obultos VAR bultos ID 201 OF oDlg Update;
Valid (bultos:= Padl(alltrim(bultos),3,"0"),oDlg:Update())
ACTIVATE DIALOG oDlg CENTERED
return nil
//----------------------------------------------------------------------------//
y con este .rc
#include <windows.h>
#include <commctrl.h>
#include <richedit.h>
LANGUAGE LANG_ENGLISH,SUBLANG_ENGLISH_US
RADIOS DIALOG DISCARDABLE 46, 44, 127, 112
STYLE WS_POPUP|DS_MODALFRAME|DS_3DLOOK|WS_CAPTION|WS_SYSMENU
CAPTION "Testing Radio Buttons"
FONT 10, "MS Sans Serif"
{
CONTROL "&Some Radios", 107, "Button", BS_GROUPBOX, 5, 6, 70, 75
CONTROL "&One", 110, "Button", BS_AUTORADIOBUTTON|WS_GROUP|WS_TABSTOP, 10, 16, 28, 12
CONTROL "&Two", 120, "Button", BS_AUTORADIOBUTTON, 10, 28, 28, 12
CONTROL "", 200, "Edit", ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 12, 92, 56, 12
CONTROL "", 201, "Edit", ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 80, 92, 40, 12
CONTROL "Expedicion", 10, "Static", WS_GROUP, 16, 84, 40, 8
CONTROL "Bultos", 11, "Static", WS_GROUP, 88, 84, 24, 8
}
Y ahora, en éste ejemplo simple, mi pregunta es ¿Porque no me actualiza el dialogo cuando cambio de radio? si le tengo puesto oDlg:Update en el ON CHANGE