Jump to content
Fivewin Brasil

Problemas com Menu BackStage da classe TRibbon


ecmsoft

Recommended Posts

Até então, eu utilizava o backstage da classe TRibbon normalmente no windows 10. Depois de uma atualização do Windows 10, após abrir o menu backstage, nenhuma DIALOG fica com foco, mesmo que eu feche o backstage, as DIALOG´s continuam sem foco, e o cursor não aparece. Dei uma olhada na classe, mas não consegui identificar o que pode ser.

Alguém já se deparou com isso ?

FW v10.12 + xHb 1.2.1 (6717)

Link to comment
Share on other sites

Olá Kapiaba.

Segue ribbon.ch e tribbon.prg que eu estou usando.

Segue tb uma imagem do que acontece na tela.

#ifndef _RIBBON_CH
#define _RIBBON_CH

/*----------------------------------------------------------------------------//
//RIBONBAR
------------------------------------------------------------------------------*/

#xcommand DEFINE RIBBONBAR [ <oRBar> ] ;
                           [ <of:OF, WINDOW> <oWnd> ] ;
                           [ <prm: PROMPT, PROMPTS, ITEMS> <cPrompt,...> ] ;
                           [ <act: ACTION, EXECUTE, ON CHANGE> <uAction> ] ;
                           [ OPTION <nOption> ] ;
                           [ HEIGHT <nHeight> ] ;
                           [ TOPMARGIN <nTopMargin> ];
                           [ COLOR <nClrPane> ] ;
                           [ <ColorBox: COLORBOX> <nClrBoxOut>,<nClrBoxIn> ] ;
                           [ <ColorSel: COLORSEL> <nClrBoxSelOut>,<nClrBoxSelIn> ] ;
       => ;
          [<oRBar> := ] TRibbonBar():New( <oWnd>, [\{<cPrompt>\}], [{|nOption,nOldOption|<uAction>}], ;
             <nOption>, , <nHeight>, <nTopMargin>, <nClrPane>, <nClrBoxOut>, <nClrBoxIn>, <nClrBoxSelOut>, <nClrBoxSelIn> )

/*----------------------------------------------------------------------------//
//GROUP
------------------------------------------------------------------------------*/             
#xcommand ADD GROUP [ <oGr> ] ;
                    [ <of: RIBBONBAR, RIBBON > <oRBar> ];
                    [ <to: TO OPTION> <nOption> ];
                    [ PROMPT <cCaption> ];
                    [ WIDTH <nWidth> ];
                    [ ACTION <uAction> ] ;
                    [ BITMAP <cBitmap> ] ;
       =>;
          [ <oGr> := ] <oRBar>:AddGroup( <nWidth>, <cCaption>, <nOption>, [{|Self|<uAction>}], <cBitmap> )
          
/*----------------------------------------------------------------------------//
//GROUP
------------------------------------------------------------------------------*/             
#xcommand @ <nRow>, <nCol> RBGROUP [ <oGr> ] ;
                               [ <of: OF, WINDOW, DIALOG > <oWnd> ];
                               [ PROMPT <cCaption> ];
                               [ SIZE <nWidth>, <nHeight> ] ;
                               [ ACTION <uAction> ] ;
                               [ BITMAP <cBitmap> ] ;
                               [ FONT <oFont> ];
                               [ <lTrans: TRANSPARENT> ];
                               [ GRADIANT <aGradSel> ];
                               [ LINECOLORS <nClrBoxIn>, <nClrBoxOut> ];
                               [ CAPTIONGRAD <aGradCaption> ];
                               [ DISABLEGRAD <aGradDisable> ];
                               [ DISABLECAPION <aDisableCap> ];
                               [ TEXTCOLOR <nClrTxt> ];
       =>;
          [ <oGr> := ] TRBGroup():New( <oWnd>, <nRow>, <nCol>, <nHeight>, <nWidth>, ,;
                                       <cCaption>, [{|Self|<uAction>}],;
                                       <nClrBoxIn>, <nClrBoxOut>, <aGradSel>, ,;
                                       <aGradCaption>, <aGradDisable>, <aDisableCap> , ,;
                                       <oFont>, <cBitmap>, [<.lTrans.>], <nClrTxt> )          

/*----------------------------------------------------------------------------//
//SEPARATOR
------------------------------------------------------------------------------*/   
          
#xcommand ADD SEPARATOR TO GROUP <oGr> ;
                    [ <to: TO, COLUMN, COL> <nCol> ];
      =>;
          <oGr>:AddSeparator( <nCol> )

          
/*----------------------------------------------------------------------------//
//BUTTON
------------------------------------------------------------------------------*/          
#xcommand @ <nRow>, <nCol> ADD BUTTON [ <oBtn> ] ;
                                      [ PROMPT <cCaption> ];
                                      [ SIZE <nWidth>, <nHeight> ] ;
                                      [ BITMAP <cBitmap> ] ;
                                      [ ACTION <uAction> ] ;
                                      [ <of: OF, GROUP> <oGr> ] ;
                                      [ WHEN <WhenFunc> ] ;
                                      [ <lBorder: BORDER> ] ;
                                      [ <lRound: ROUND> [ <rs: RSIZE, ROUNDSIZE><nRound> ] ] ;
                                      [ <layout: TOP, LEFT, BOTTOM, RIGHT, MOSTLEFT, MOSTRIGHT, CENTER> ] ;
                                      [ <type: NORMAL, POPUP, SPLITPOPUP, SAYBUTTON> ] ;
                                      [ <lGrouping: GROUPBUTTON> [<lFirstElm: FIRST>][ <lEndElm: END> ] ];
                                      [ MENU <oPopup> ];
                                      [ MESSAGE <cMsg> ] ;
                                      [ LINECOLORS <nClrBoxIn>, <nClrBoxOut> ];                                      
       =>;
          [ <oBtn> := ] <oGr>:AddButton( <nRow>, <nCol>, <nHeight>, <nWidth>, <cCaption>,;
                                         [{|Self|<uAction>}], [ Upper(<(type)>) ], <{WhenFunc}>, ;
                                         <cBitmap>, [<.lBorder.>], <.lRound.>, [ Upper(<(layout)>) ], ;
                                         [<oPopup>], [<.lGrouping.>], [<.lFirstElm.>], [<.lEndElm.>], <cMsg>, [<nRound>],;
                                         [<nClrBoxIn>], [<nClrBoxOut>] )
          
                     
/*----------------------------------------------------------------------------//
//BUTTON
------------------------------------------------------------------------------*/          
#xcommand @ <nRow>, <nCol> RBBTN [ <oBtn> ] ;
                                 [ PROMPT <cCaption> ];
                                 [ SIZE <nWidth>, <nHeight> ] ;
                                 [ BITMAP <cBitmap> ] ;
                                 [ ACTION <uAction> ] ;
                                 [ <of: OF, DIALOG, WINDOW> <oWnd> ] ;
                                 [ WHEN <WhenFunc> ] ;
                                 [ <lBorder: BORDER> ] ;
                                 [ <lRound: ROUND> [ <rs: RSIZE, ROUNDSIZE><nRound> ] ] ;
                                 [ <lAdjust: ADJUST> ] ;
                                 [ <layout: TOP, LEFT, BOTTOM, RIGHT, MOSTLEFT, MOSTRIGHT, CENTER> ] ;
                                 [ <type: NORMAL, POPUP, SPLITPOPUP, SAYBUTTON> ] ;
                                 [ <lGrouping: GROUPBUTTON> [<lFirstElm: FIRST>][ <lEndElm: END> ] ];
                                 [ MENU <oPopup> ];
                                 [ MESSAGE <cMsg> ] ;
                                 [ TOOLTIP <cToolTip> ];
                                 [ FONT <oFont> ];
                                 [ <lTrans: TRANSPARENT> ];
                                 [ GRADIANT <aGradiant> ];
                                 [ LINECOLORS <nClrBoxIn>, <nClrBoxOut> ];
       =>;
          [ <oBtn> := ] TRBtn():New( <nRow>, <nCol>, <nWidth>, <nHeight>, <cBitmap>,;
                                         [{|Self|<uAction>}], <oWnd>, <cMsg>, <{WhenFunc}>, <.lAdjust.>, ,;
                                         <cCaption>, <oFont>, [<.lBorder.>], [<.lRound.>],; 
                                         [ Upper(<(layout)>) ], , <cToolTip>, , ,[ Upper(<(type)>) ],  ;
                                         [<oPopup>], , , , , , , , ,[<.lGrouping.>], [<.lFirstElm.>], ;
                                         [<.lEndElm.>], [<.lTrans.>], [<aGradiant>], [<nClrBoxIn>], [<nClrBoxOut>], [<nRound>] )

#xcommand REDEFINE RBBTN [ <oBtn> ] ;
                         [ ID <nID> ];
                         [ PROMPT <cCaption> ];
                         [ BITMAP <cBitmap> ] ;
                         [ ACTION <uAction> ] ;
                         [ <of: OF, DIALOG, WINDOW> <oWnd> ] ;
                         [ WHEN <WhenFunc> ] ;
                         [ <lBorder: BORDER> ] ;
                         [ <lRound: ROUND> [ <rs: RSIZE, ROUNDSIZE><nRound> ] ] ;
                         [ <lAdjust: ADJUST> ] ;
                         [ <layout: TOP, LEFT, BOTTOM, RIGHT, MOSTLEFT, MOSTRIGHT, CENTER> ] ;
                         [ <type: NORMAL, POPUP, SPLITPOPUP, SAYBUTTON> ] ;
                         [ <lGrouping: GROUPBUTTON> [<lFirstElm: FIRST>][ <lEndElm: END> ] ];
                         [ MENU <oPopup> ];
                         [ MESSAGE <cMsg> ] ;
                         [ TOOLTIP <cToolTip> ];
                         [ FONT <oFont> ];
                         [ <lTrans: TRANSPARENT> ];
                         [ GRADIANT <aGradiant> ];
                         [ LINECOLORS <nClrBoxIn>, <nClrBoxOut> ];
       =>;
          [ <oBtn> := ] TRBtn():Redefine( <nID>, <cBitmap>,;
                                    [{|Self|<uAction>}], <oWnd>, <cMsg>, <{WhenFunc}>, <.lAdjust.>, ,;
                                    <cCaption>, <oFont>, [<.lBorder.>], [<.lRound.>],; 
                                    [ Upper(<(layout)>) ], , <cToolTip>, , ,[ Upper(<(type)>) ],  ;
                                    [<oPopup>], , , , , , , , ,[<.lGrouping.>], [<.lFirstElm.>], ;
                                    [<.lEndElm.>], [<.lTrans.>], [<aGradiant>], [<nClrBoxIn>], [<nClrBoxOut>], [<nRound>] )
                                         
/*----------------------------------------------------------------------------//
//BACKSTAGE
------------------------------------------------------------------------------*/          
#xcommand DEFINE BACKSTAGE <oBackStage>;
                 [ MAINWIDTH <nWidth> ];
       => ;
          <oBackStage> := TBackStage():New( , , , , , [<nWidth>] )



#xcommand DEFINE BSSELECT [ <oOption> ] [ <of: OF, BACKSTAGE> <oBackStage> ] ;
                          [ PROMPT <cCaption> ];
                          [ HEIGHT <nHeight> ] ;
                          [ ACTION <uAction> ] ;
                          [ <clrtext: COLORTEXT> <nClrText>[,<nClrTextOver>] ] ;
                          [ GRADIENT <aGradOver> ];
                          [ COLORS <nClrStart>[,<nClrEnd>] ];
                          [ BORDER <nBorderClr> ];
                          [ LEFTMARGIN <nLeftMargin> ];
       =>;
          [ <oOption> := ] <oBackStage>:AddOption( <cCaption>, [<nClrText>], <aGradOver>, 1, ;
                                         <nHeight>, <nClrStart>, [<nClrEnd>], <nBorderClr>, , ;
                                         <nLeftMargin>, [<nClrTextOver>], ,[{|Self, oOpt, nLastSelect |<uAction>}] )

#xcommand DEFINE BSBUTTON [ <oOption> ] [ <of: OF, BACKSTAGE> <oBackStage> ] ;
                          [ PROMPT <cCaption> ];
                          [ BITMAP <cBitmap> ] ;
                          [ HEIGHT <nHeight> ] ;
                          [ ACTION <uAction> ] ;
                          [ <clrtext: COLORTEXT> <nClrText>[,<nClrTextOver>] ] ;
                          [ GRADIENT <aGradOver> ];
                          [ BORDER <nBorderClr> ];
                          [ LEFTMARGIN <nLeftMargin> ];
       =>;
          [ <oOption> := ] <oBackStage>:AddOption( <cCaption>, [<nClrText>], <aGradOver>, 2, ;
                                         <nHeight>, , , <nBorderClr>, <cBitmap>, ;
                                         <nLeftMargin>, [<nClrTextOver>], ,[{|Self, oOpt, nLastSelect |<uAction>}] )


#xcommand SET BACKSTAGE <oBackStage>  TO <oRBar>;
       => ;
          <oRBar>:SetBackStage( <oBackStage> )
          
#xcommand DEFINE QUICKBUTTON [ <of: OF, RIBBON> <oRibbon> ] ;
                             [ <file: BITMAP, IMAGE> <cBmp1> ;
                             [,<cBmp2>[,<cBmp3>[,<cBmp4>] ] ] ] ;
                             [ ACTION <uAction> ] ;
                             [ <lNoGrad: NOGRAD> ];
       =>;
          <oRibbon>:QuickRoundBtn( <cBmp1>, [<cBmp2>], [<cBmp3>], [<cBmp4>],;
                                                 [{|Self|<uAction>}], !<.lNoGrad.> )
                             
#xcommand DEFINE QUICKACCESS [<oQuickAcc>] [ <of: OF, RIBBON> <oRibbon> ] ;
                             [ LEFTMARGIN <nLeftMargin> ];
                             [ <lNoGrad: NOGRAD> ];
       =>;
          [ <oQuickAcc> := ] <oRibbon>:QuickAccess( <nLeftMargin>, !<.lNoGrad.> )
          

#xcommand ADD BUTTON [ <oBtn> ] [ QUICKACCESS <oQuickAcc> ];
                                [ BITMAP <cBitmap> ] ;
                                [ ACTION <uAction> ] ;
                                [ WHEN <WhenFunc> ] ;
       =>;
          [ <oBtn> := ] <oQuickAcc>:AddButton( <cBitmap>, [{|Self|<uAction>}], ;
                        <{WhenFunc}> )

#endif

 

tribbon.prg

Sem título2.png

Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...