Page 1 of 1

Cambiar titulo en un checkbox

Posted: Wed Jun 05, 2013 2:57 pm
by J. Ernesto
Eso amigos del foro, necesito en tiempo de ejecución modificar el titulo del checkbox cuando este cambia, como lo hago?

Gracias

Re: Cambiar titulo en un checkbox

Posted: Wed Jun 05, 2013 3:36 pm
by Cgallegoa
Hola,

Prueba con oChk:SetText(cText)

Ejemplo:

Code: Select all

#include "FiveWin.ch"

Function Inicio()
LOCAL oDlg, oChk, lVar:= .T.
DEFINE DIALOG oDlg FROM 0,0 TO 200,400 PIXEL
   @ 10,10 BUTTON "Probar cambio título checkbox" OF oDlg PIXEL ACTION CambiaTituloChk(oChk)
   @ 40,20 CHECKBOX oChk VAR lVar PROMPT "Título cambiante" OF oDlg PIXEL
ACTIVATE DIALOG oDlg CENTERED
Return(NIL)

Function CambiaTituloChk(oChk)
LOCAL cTitulo:="", i:=1
for i:=1 TO 10
    cTitulo := "Nuevo título  "+StrZero(i,3)
    oChk:SetText( cTitulo )
    oChk:Refresh()
    SysWait(0.5)
next
Return(NIL)

Re: Cambiar titulo en un checkbox

Posted: Wed Jun 05, 2013 4:39 pm
by J. Ernesto
me genera el siguiente mensaje de error:

Error description: Error BASE/1004 Message not found: LOGICAL:SETTEXT
Args:
[ 1] = L .T.

y estoy haciéndolo de la siguiente forma: lCostos:SetText ( "Con _" )

Re: Cambiar titulo en un checkbox

Posted: Wed Jun 05, 2013 7:05 pm
by Pedro
Ernesto en la línea de tu programa, donde tienes el checkbox ¿la tienes como lCostos? "Define Checkbox lCostos......."

Lo que el amigo Gallegoa te está indicando es que si tienes :
DEFINE ó REDEFINE CHECKBOX oChk VAR lcostos PROMPT "Título cambiante" OF oDlg PIXEL
es oChk lo que debes poner con el settext, no lCostos.

Re: Cambiar titulo en un checkbox

Posted: Wed Jun 05, 2013 8:05 pm
by J. Ernesto
Pedro:

lo tengo de la forma siguiente:

@ 091, 194 CHECKBOX lCostos PROMPT "Resumen por Material" SIZE 100, 10 FONT oFont10 PIXEL OF oDlg10 COLOR nRGB ( 240, 240, 008 ), nRGB ( 008, 008, 240 )

Re: Cambiar titulo en un checkbox

Posted: Wed Jun 05, 2013 8:32 pm
by karinha

Code: Select all

#include "FiveWin.ch"

Function Inicio()

   LOCAL oDlg, oChk, lVar:= .T., lCostos

   DEFINE DIALOG oDlg FROM 0,0 TO 200,400 PIXEL

   // ASI
   @ 10,10 BUTTON "Probar cambio título checkbox" OF oDlg PIXEL ACTION CambiaTituloChk(oChk)

   //@ 091, 194 CHECKBOX lCostos PROMPT "Resumen por Material" SIZE 100, 10 FONT oFont10 PIXEL OF oDlg10 COLOR nRGB ( 240, 240, 008 ), nRGB ( 008, 008, 240 )

   // Ó CON ON CHANGE
   @ 40,20 CHECKBOX oChk VAR lCostos PROMPT "Resumen por Material" OF oDlg PIXEL ;
           ON CHANGE ( CambiaTituloChk( oChk ) )


   ACTIVATE DIALOG oDlg CENTERED

Return(NIL)

Function CambiaTituloChk(oChk)

   LOCAL cTitulo:="", i:=1

   for i:=1 TO 10
    cTitulo := "Nuevo título  "+StrZero(i,3)
    oChk:SetText( cTitulo )
    oChk:Refresh()
    SysWait(0.5)
   next

Return(NIL)

Re: Cambiar titulo en un checkbox

Posted: Thu Jun 06, 2013 1:58 am
by FranciscoA
Ernesto.
Como te han mostrado los demas colegas con sus ejemplos, tienes que crear el objeto:
@ 091, 194 CHECKBOX oCbx Var lCostos PROMPT "Resumen por Material"...
Saludos.

Re: Cambiar titulo en un checkbox (Solucionado)

Posted: Thu Jun 06, 2013 3:15 pm
by J. Ernesto
Gracias por la ayuda, se me había olvidado crear el objeto.

@ 103, 194 CHECKBOX olCostos VAR lCostos PROMPT "con _" SIZE 100, 10 FONT oFont10 PIXEL OF oDlg10 COLOR nRGB ( 240, 240, 008 ), nRGB ( 008, 008, 240 ) ;
ON CHANGE ( sTitulo := IIF ( lCostos, "sin _" , "con _" ),;
olCostos:SetText ( sTitulo ) ,;
olCostos:Refresh () )[/color]

Gracias y Saludos