Cual es la forma de refrescar un Tsay que está contenido en un TPanel (que contiene otros controles), en un dialogo de recursos?
Es decir, desde un xBrowse, al cambiar posicion , refrescar el say con el valor de x columna del browse.
Algo asi (ej tomado del foro y modificado:
- Code: Select all Expand view
- Function MyPanel()
local oDlg, oPanel
local oBrw, c1, oSay
DBUSEAREA(.T.,,"STATES","STATES",.T.)
DEFINE DIALOG oDlg SIZE 600,600 PIXEL
@ 140,20 XBROWSE oBrw OF oDlg PIXEL ;
SIZE 150, 150 ;
AUTOCOLS ;
DATASOURCE "STATES"
oBrw:CreateFromCode()
c1 := oBrw:aCols[2]:Value
oBrw:bChange := {|| c1 := oBrw:aCols[2]:Value, oPanel:Refresh() }
ACTIVATE DIALOG oDlg CENTERED ;
ON INIT ( oPanel := CreatePanel( oDlg,@c1,oSay,.t. ) )
STATES->(DBCLOSEAREA())
return nil
//--------------------------------------//
function CreatePanel( oDlg, c1, oSay )
local oPanel
local aGrad := { { 1, RGB( 216, 230, 238 ), RGB( 103, 154, 194 ) } }
//local c1 := "Hello World "
local c2 := Space( 100 )
oPanel := TPanel():New( 050,050,250,550,oDlg )
oPanel:Gradient( aGrad )
oPanel:bPainted := { || oPanel:Box( 1,1,oPanel:nHeight-1,oPanel:nWidth-1 ) } //Con borde
@ 40,20 SAY oSay VAR c1 SIZE 200,24 PIXEL OF oPanel
@ 80,20 GET c2 SIZE 200,24 PIXEL OF oPanel
return oPanel
Gracias.