Te dejo el codigo.
Mi DBF esta abierta desde donde lo envio.
Code: Select all
Function ClrFondoSay()
local oDlg2, oTitu, oSay1, oSay2, oSay3
local oFont2, oFont5, oFont6
// DBGOTOP()
DEFINE FONT oFont2 NAME "ARIAL" SIZE 0,-10 BOLD
DEFINE FONT oFont5 NAME "ARIAL" SIZE 0,-12 BOLD
DEFINE FONT oFont6 NAME "TAHOMA" SIZE 0,-14 BOLD
DEFINE DIALOG oDlg2 SIZE 600,570 PIXEL TRUEPIXEL FONT oFont2 //STYLE nOr( WS_POPUP, WS_VISIBLE, WS_DLGFRAME )
oDlg2:lTransparent := .F.
@ 10,150 SAY otitu PROMPT " MUESTRA PROFESIONAL " PIXEL OF oDlg2 COLORS RGB(0,100,0) FONT oFont5
@ 055,050 SAY "Código :" SIZE 100,20 PIXEL OF oDlg2 RIGHT FONT oFont6 Transparent
@ 105,050 SAY "Nombre :" SIZE 100,20 PIXEL OF oDlg2 RIGHT FONT oFont6 Transparent
@ 130,050 SAY "Inss :" SIZE 100,20 PIXEL OF oDlg2 RIGHT FONT oFont6 Transparent
// Aqui necesito que estos Say, tengan un fondo en color y solo del largo del texto
// de la variable no considerando _ en blanco.
@ 053,160 SAY oSay1 PROMPT Profe->Rut_Pro SIZE GetTextWidth( 0, Alltrim(Profe->Rut_Pro), oFont6:hFont ),20 PIXEL OF oDlg2 COLOR RGB(0,0,128), RGB(159,233,255) FONT oFont6 ADJUST border
@ 105,160 SAY oSay2 PROMPT Profe->Nom_Pro SIZE GetTextWidth( 0, Alltrim(Profe->Nom_Pro), oFont6:hFont ),20 PIXEL OF oDlg2 COLOR RGB(0,0,128), RGB(159,233,255) FONT oFont6 ADJUST border
@ 130,160 SAY oSay3 PROMPT Profe->Nom_Doc SIZE GetTextWidth( 0, Alltrim(Profe->Nom_Doc),oFont6:hFont ),20 PIXEL OF oDlg2 COLOR RGB(0,0,128), CLR_YELLOW FONT oFont6 ADJUST border
@ 300, 50 BUTTON "Siguiente" SIZE 100,30 PIXEL OF oDlg2 ACTION NextData({oSay1,oSay2,oSay3},{.t.,.t.,.t.})
@ 300,250 BUTTON "Salir" SIZE 100,30 PIXEL OF oDlg2 ACTION oDlg2:End()
ACTIVATE DIALOG oDlg2 CENTERED ON INIT RefreshData({oSay1,oSay2,oSay3},{.t.,.t.,.t.})
RELEASE oFont2, oFont5, oFont6
Return nil
//---------------------------------------------------------//
Function NextData(aoSay, alBorder)
Profe->(dbskip())
if Profe->(eof())
Profe->(dbgotop())
endif
?nom_pro,rut_pro,Alltrim(rut_Pro),len(rut_pro),len(alltrim(rut_pro))
RefreshData(aoSay, alBorder)
Return nil
Function RefreshData(aoSay, alBorder)
/*
AEval(aoSay,{|o,n| o:Refresh(),;
o:nWidth := GetTextWidth( 0, Alltrim(o:cCaption), o:oFont:hFont ) + if(alBorder[n].and.(Len(Alltrim(o:cCaption))>0),6,0) })
*/
AEval(aoSay,{|o,n| o:Refresh(),;
o:nWidth := GetTextWidth( 0, Alltrim(o:cCaption), o:oFont:hFont ) + if(alBorder[n],6,0) })
Return nil