como cambiar caption de un boton...

como cambiar caption de un boton...

Postby Elias Torres » Fri Jan 19, 2007 11:31 am

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

Postby Elias Torres » Fri Jan 19, 2007 12:18 pm

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

Postby Elias Torres » Fri Jan 19, 2007 12:33 pm

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.
Elias Torres
 
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Postby Antonio Linares » Fri Jan 19, 2007 1:14 pm

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
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Elias Torres » Fri Jan 19, 2007 4:23 pm

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.
Elias Torres
 
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Postby Antonio Linares » Fri Jan 19, 2007 9:18 pm

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
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Elias Torres » Mon Jan 22, 2007 9:50 am

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.
Elias Torres
 
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Postby Antonio Linares » Mon Jan 22, 2007 10:57 am

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
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Pocket PC

Who is online

Users browsing this forum: No registered users and 41 guests