FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Bitmap de opcion de menu queda desabilitado.
Posts: 607
Joined: Mon Mar 04, 2013 04:32 PM
Bitmap de opcion de menu queda desabilitado.
Posted: Sun Aug 15, 2021 06:58 PM

Hola.

En el menu de la aplicacion utilizo bitmaps en algunas opciones.
Desabilito la opcion cuando entro en el, y lo vuelvo a habilitar cuando salgo,
con la opcion de menu funciona muy bien, pero el icono asociado a la opcion no se habilita,
la opcion de menu, sigue funcionando pero el resultado estetico no es el el adecuado.
queda con este estado en gris , me explico no ?.

Como haceis para que el bitmap asociado a la opcion de menu quede nuevamente habilitado.

Muchisimas gracias por vuestra ayuda.

Jose.

Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Bitmap de opcion de menu queda desabilitado.
Posted: Sun Aug 15, 2021 10:50 PM
Simples, asi:

Code (fw): Select all Collapse
   PUBLIC oPropo
   PUBLIC lLigaBtnPropo := .T.

   DEFINE BUTTON oPropo OF OBAR RESOURCE "FOLDER2" PROMPT "Proposta"         ;
      MESSAGE OemToAnsi( "Cadastrar Dados Para Contrato e Proposta" )        ;
      ACTION( PROPOSTA( oPropo ) )                                           ;
      TOOLTIP OemToAnsi( "Cadastrar Dados Para Contrato e Proposta" )        ;
      NOBORDER GROUP WHEN( lLigaBtnPropo )

//

FUNCTION PROPOSTA( oPropo )

   LOCAL oDlg, oGroup, oFnt, oFont, IDCor, oSaida, aGet := ARRAY(5), oLbx
   LOCAL cAlias, oIncluir, oAlterar, oExcluir, oImprimir, lImpProposta := .T.
   LOCAL nKey, aGrad, oDuplicar, oRadMenu, nPropBusca := 0
   LOCAL oBtnProposta, cTitle, lTemPropSemCod := .F., oBtnTroca

   PUBLIC lFechaJan, lLigaBtnPropo

   HB_GCALL( .F. )

   lFechaJan := .F.

   // Para Impedir Uma 2¦ Abertura de Janela!!!
   IF lAbrePropo = .F.

      lAbrePropo := .T.

   ELSE

      MsgInfo( OemToAnsi( "ATENۂO:                         " +CRLF+ ;
                          "A JANELA DA PROPOSTA Jµ ESTµ     " +CRLF+ ;
                          "ABERTA NO RODAP DO PROGRAMA     " +CRLF+ ;
                          "MAXIMIZE A JANELA PARA TRABALHAR." +CRLF+ ;
                          "USE O BOTÇO <Saida> PARA FECHAR. " +CRLF+ ;
                          "CUIDADO PODE QUEBRAR OS BANCOS.  " ),     ;
               OemToAnsi( "JANELA Jµ ESTA ABERTA NO RODAP. " ) )

      lLigaBtnPropo := .F.

      oPropo:Disable()
      oPropo:Refresh()

      lAbrePropo := .F.

      RETURN NIL

   ENDIF


   // Salida...
   REDEFINE BUTTONBMP oSaida ID 306 OF oDlg RESOURCE "154" TEXTRIGHT         ;
      ACTION ( lLigaBtnPropo := .T., oPropo:Enable(), oPropo:Refresh(),      ;
               lAbrePropo := .F., lFechaJan := .T., oWndBrow:End(), oDlg:End() ) CANCEL

   oSaida:cTooltip := { "Click no Botão Para Sair",                          ;
                        "Saida - Exit - Cancelar ", 1, CLR_WHITE, CLR_CYAN }


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Bitmap de opcion de menu queda desabilitado.
Posted: Mon Aug 16, 2021 08:36 AM

Jose, pon un simple ejemplo de la linea del MENUITEM para ver como lo estás implementando

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 607
Joined: Mon Mar 04, 2013 04:32 PM
Re: Bitmap de opcion de menu queda desabilitado.
Posted: Tue Aug 17, 2021 08:34 AM
Buenos dias:

Joao , Cristobal muchisimas gracias por vuestro tiempo.

Joao en la buttonbar que duplica las opciones del menu general no tengo ningun problema, se desabilita y habilita correctamente.

El problema es en los bitmaps de las opciones del menu, hay que controlar la salida general del programa que lo hago asi.

Code (fw): Select all Collapse
MENUITEM "&Salir" + Chr( 9 ) + "Alt-F4" RESOURCE "Exit3" ACTION oWndMain:END() ACCELERATOR ACC_ALT, VK_F4;
      WHEN Len( oWndMain:oWndClient:aWnd ) == 0 MESSAGE "Abandonar el Programa"


Y en las opciones de abrir ventanas hijas lo hago asi.
Code (fw): Select all Collapse
MENUITEM oMenuArt PROMPT "&Articulos" RESOURCE "Articul2" ;
      ACTION ArtiBrw( oMenuArt, oArt ) MESSAGE "Mantenimiento de Articulos"

Y una vez entro en la funcion por supuesto hago esto
Code (fw): Select all Collapse
   oMenuArt:Disable()
   oArt:Disable()

y al salir de la ventana
Code (fw): Select all Collapse
ACTIVATE WINDOW oWndArt VALID ( oMenuArt:Enable(),oArt:Enable(), .T.) // Tengo mas cosas aqui pero lo simplifico


Como veis todo el codigo es muy sencillo y la opcion de menu funciona perfectamente se desabilita y habilita sin problemas, lo
que no se habilita nunca es el pintado del bitmap que tras la primera abertura de ventana queda desabilitado, supongo que no hace
falta publicar ninguna foto y se entiende.
Tampoco publique el codigo ya que como es tan simple consideraba que se entendia.

¿Como lo haceis vosotros para que el bitmap asociado a la opcion del menu se desabilite y posteriormente se habilite como estaba antes?

Muchisimas gracias por vuestro tiempo.

Jose.
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Bitmap de opcion de menu queda desabilitado.
Posted: Tue Aug 17, 2021 10:02 AM

Jose, prueba simplemente a no usar el :disable() y usa, el WHEN en el MENUITEM ( yo suelo usar una variable que seteo a .T. o .F. ---> WHEN lSw )
Dime qué ocurre entonces.

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Bitmap de opcion de menu queda desabilitado.
Posted: Tue Aug 17, 2021 12:07 PM
Code (fw): Select all Collapse
FUNCTION Main()

   PUBLIC lLigaBtnChama := .T., lLigaBtnPropo := .T., lLigaBtnOrca := .T.

return nil

function BuildMenu()


      MENUITEM "&Orçamento" COLORMENU CLR_HBLUE BOLD ;
         WHEN( lLigaBtnOrca ) RESOURCE "152"

return nil


Regards, saludos
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 607
Joined: Mon Mar 04, 2013 04:32 PM
Re: Bitmap de opcion de menu queda desabilitado.
Posted: Thu Aug 19, 2021 09:44 AM
Hola Cristobal , Joao

Muchisimas gracias por vuestra ayuda.

Yo creo, en mi humilde opinion que me lo que sugeris que haga es practicamente esto, que ya hago.

Code (fw): Select all Collapse
MENUITEM "&Salir" + Chr( 9 ) + "Alt-F4" RESOURCE "Exit3" ACTION oWndMain:END() ACCELERATOR ACC_ALT, VK_F4;
      WHEN Len( oWndMain:oWndClient:aWnd ) == 0 MESSAGE "Abandonar el Programa"


Esto como indico funciona perfectamente con la opcion del menu, lo que no habilita es el bitmap
y teniendo en cuenta que en los botones de la BUTTONBAR funciona perfectamente habilitar y desabilitar el bitmap

quizas con ligeros cambios en la clase TMenu o Tmenuitem, permitiria que el bitmap se activase de la misma forma que ocurre en el boton de la BUTTONBAR.

No se, gurus de Fivewin o Fivetech Team, tenerlo en cartera pegarle un vistazo permitiria su facil solucion.

Muchisimas gracias.

Saludos.
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Bitmap de opcion de menu queda desabilitado.
Posted: Thu Aug 19, 2021 11:30 AM
Buen día. No tengo este efecto. ¿Puede simular un ejemplo completo y ZIPAR para realizar pruebas?

Anfitrión aquí:

https://mega.nz/

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341

Continue the discussion