como cambiar caption de un boton...

Post Reply
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

como cambiar caption de un boton...

Post by Elias Torres »

Hola a todos...

Estoy intentando cambiar desde codigo el caption de tres botones. Resulta que tengo en tres variables la descripcion que deben tener los botones y estoy intentando asignarselas al caption de cada uno de ellos de la siguiente forma:

redefine button id 500 label om1 of odlg15
redefine button id 501 label om2 of odlg15
redefine button id 502 label om3 of odlg15

Las variables om1,om2,om3 contiene la descripcion que debe tener cada boton... pero esto no me funciona me da el siguiente error:


Message not found
TBUTTON:DEFCONTROL
Args:
[ 1] = O Object

stack calls:
__ERRRT_SBASE(0)
TBUTTON:ERROR(179)
(b)HBOBJECT(105)
TBUTTON:MSGNOTFOUND(0)
TBUTTON:DEFCONTROL(169)
TGROUP:REDEFINE(0)
CONSULTAS(2455)
(b)LISTADO_CONSULTAS(2337)
TBITMAP:LBUTTONDOWN(0)
TWINDOW:HANDLEEVENT(0)
TCONTROL:HANDLEEVENT(0)
TBITMAP:HANDLEEVENT(0)
_FWPPC(0)
DIALOGBOX(0)
TDIALOG:ACTIVATE(0)
LISTADO_CONSULTAS(2340)
(b)MAIN(96)
TBITMAP:LBUTTONDOWN(0)
TWINDOW:HANDLEEVENT(0)
TCONTROL:HANDLEEVENT(0)
TBITMAP:HANDLEEVENT(0)
_FWPPC(0)
DIALOGBOX(0)
TDIALOG:ACTIVATE(0)
MAIN(102)



¿Que es lo que está mal?

Saludos y gracias-

Elías Torres
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Post by Elias Torres »

Ya está solucionado...

redefine button id 500 of odlg15 update PROMPT(om1)
redefine button id 501 of odlg15 update PROMPT(om2)
redefine button id 502 of odlg15 update PROMPT(om3)


saludos..

Elías Torres.
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Post by Elias Torres »

Tengo otra duda.... Una vez que he conseguido que el caption de los botones tenga un texto que lo coge de unas variables,quiero que ese texto en cada boton salga por ejemplo en negrita y con algun tipo de color. Necesito esto porque tengo que hacer que el boton cambie el caption de color cuando lo pulses para dar la impresion de que ese boton está activo... pero no se como hacerlo.

Si me podeis indicar....


Saludos y gracias..

Elías Torres.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Elías,

Usa los botones TBtnBmp que permiten mostrar una imagen. A los botones estandard no se les puede cambiar el color.

Revisa samples\tutor12.prg
regards, saludos

Antonio Linares
www.fivetechsoft.com
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Post by Elias Torres »

Antonio, lo he puesto como btnbmp, pero lo que pretendo no es ponerle una imagen sino cambiarle el caption cada vez que se pulse sobre el boton...

Con obtnbmp:seltext('algo') cambio el caption del boton..lo que no se como hacer es para que cada vez que pulse el boton me cambie el caption, por ejemplo:

si pulsas 1 vez: caption='hola'
si pulsas la segunda vez: caption='adios'
si se vuelves a pulsar: caption='hola' y asi sucesivamente....
...
...

Como puedo hacer eso?


Saludos

Elías Torres.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Elías,

Te refieres a que el texto conmute entre dos valores ? De ser así puedes usar una variable lógica:

lVal := .f.

... BUTTON ... ACTION ( lVal := ! lVal, If( lVal, oBtn:SetText( "uno" ), oBtn:SetText( "dos" ) )
regards, saludos

Antonio Linares
www.fivetechsoft.com
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Post by Elias Torres »

Gracias Antonio, es lo que pretendia hacer. Lo que pasa es que nose como cambiarle el color. La siguiente instruccion funciona pero no me cambia el color del caption cada vez que pulso en el boton...

redefine button obtn id 500 of odlg15 action (lval:=!lval,iif(lval,(obtn:settext(om1), RGB(230,184,94)),(obtn:settext(om1),RGB(255,0,0))))


Saludos.

Elías Torres.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Elías,

oBtn:SetColor( 0, nRGB(230,184,94) )

pero, si no me equivoco, los botones estandard de Windows no te permitirán cambiarles su color de fondo, por eso tendrías que usar un TBtnBmp que no es estandard y tenemos control total sobre él
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply