FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Refesco
Posts: 297
Joined: Fri Apr 14, 2006 05:52 PM
Refesco
Posted: Thu Aug 09, 2007 09:07 AM
Buenos d铆as foro:

Tengo en un dialogo desde resursos (Microsoft C++) con un combobox y 2 checks, los checks tienen que estar activados solo cuando se haya seleccionado un valor espec铆fico del combo, con el resto de valores tienen que estar desactivados. Por defecto, cuando se activa el dialogo, los check estan activados porque el valor del combo es que el lo activa, pues cuando selecciono un valor que los deviera de desactivar, no se refresca los checks y siguen activos. Solo se desactivan cuando vuelve a coger el foco el combo o cuando pincho sobre cualquiera de los 2 checks. He probado con sysrefres, refrescando los checks en el ON CHANGE del combo, 驴sabeis de que puede ser?

redefine combobox oCombo var vCombo items aCombo id 801 of oDlg STYLE CBS_DROPDOWN ON CHANGE (ocheck1:refresh(),ocheck2:refresh())

ocombo:blostfocus:={||ocheck1:refresh(),ocheck2:refresh()}

redefine checkbox ocheck1 var porprecio id 702 of odlg when  objeto:lPuedoModificar .and. alltrim(vCombo)="NO ADJUDICADA" on change (Desactiva(ocheck2,@porconstructora),sysrefresh()) UPDATE

redefine checkbox ocheck2 var porconstructora id 703 of odlg when  objeto:lPuedoModificar .and. alltrim(vCombo)="NO ADJUDICADA" on change (Desactiva(ocheck1,@porprecio),sysrefresh()) UPDATE


Muchas Gracias.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Refesco
Posted: Thu Aug 09, 2007 10:38 AM
Mike,

Hazlo as铆:
redefine combobox oCombo var vCombo items aCombo id 801 of oDlg STYLE CBS_DROPDOWN ON CHANGE If( objeto:lPuedoModificar .and. alltrim(vCombo)="NO ADJUDICADA", ( ocheck1:Enable(), ocheck2:Enable() ), ( ocheck1:Disable(), ocheck2:Disable() ) )

redefine checkbox ocheck1 var porprecio id 702 of odlg when  objeto:lPuedoModificar .and. alltrim(vCombo)="NO ADJUDICADA" on change (Desactiva(ocheck2,@porconstructora),sysrefresh()) UPDATE

redefine checkbox ocheck2 var porconstructora id 703 of odlg when  objeto:lPuedoModificar .and. alltrim(vCombo)="NO ADJUDICADA" on change (Desactiva(ocheck1,@porprecio),sysrefresh()) UPDATE
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 297
Joined: Fri Apr 14, 2006 05:52 PM
Refesco
Posted: Fri Aug 10, 2007 07:18 AM

Perfecto Antonio!! :D

No se por que ser铆a, pero MUCHAS GRACIAS

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Refesco
Posted: Fri Aug 10, 2007 07:25 AM

Mike,

Las cla煤sulas WHEN se evaluan cuando algun control pierde el foco.

En tu caso, estas cambiando la selecci贸n del combobox, pero no est谩s perdiendo su foco, por eso los WHEN no se eval煤an.

Con el cambio propuesto ahora tu realizas la misma acci贸n que los WHEN cuando cambia la selecci贸n del combobox y no tienes que aguardar a que se cambie el foco.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 297
Joined: Fri Apr 14, 2006 05:52 PM
Refesco
Posted: Fri Aug 10, 2007 08:17 AM

La explicaci贸n, perfecta, s贸lo comentarte que en mi ejemplo cuando seleccionaba un valor en el combobox y luego pulsaba intro, ah铆 si se deber铆a de ejecutar la clausula WHEN, porque si que me saltaba a otro objeto. De todas formas te agradezco enormemente tus soluciones y explicaciones ya que me har谩n pensar.

UN SALUDO,

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Refesco
Posted: Fri Aug 10, 2007 09:05 AM
Mike,

Por favor, prueba tu c贸digo original con s贸lo este cambio:

redefine combobox oCombo var vCombo items aCombo id 801 of oDlg STYLE CBS_DROPDOWN ON CHANGE (ocheck1:refresh(),ocheck2:refresh()) VALID ( oDlg:AEvalWhen(), .T. )
regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion