ButtonBmp TABSTOP

ButtonBmp TABSTOP

Postby wartiaga » Fri Jan 05, 2024 6:38 pm

Hi,

How I can change buttonbmp status to TABSTOP or not TABSTOP in execution program?

Thanks in advance.
wartiaga
 
Posts: 175
Joined: Wed May 25, 2016 1:04 am

Re: ButtonBmp TABSTOP

Postby Cgallegoa » Fri Jan 05, 2024 8:02 pm

Code: Select all  Expand view
#include "FiveWin.ch"


#define WS_CHILD                 1073741824  // 0x40000000L
#define WS_VISIBLE               268435456   // 0x10000000L
//#define WS_TABSTOP               65536       // 0x00010000L


Function Main()
  LOCAL oDlg, oBtn[3]

    DEFINE DIALOG oDlg FROM 0,0 TO 300,500 PIXEL TRUEPIXEL

    @ 30, 30 BUTTONBMP oBtn[1] PROMPT "&One" OF oDlg PIXEL SIZE 50,30 ACTION MsgInfo("One")
    @ 30, 90 BUTTONBMP oBtn[2] PROMPT "&Two" OF oDlg PIXEL SIZE 50,30 ACTION MsgInfo("Two - without TabStop")
    @ 30,150 BUTTONBMP oBtn[3] PROMPT "&Three" OF oDlg PIXEL SIZE 50,30 ACTION MsgInfo("Three")
     
      oBtn[2]:nStyle:= nOR(WS_CHILD, WS_VISIBLE)

    ACTIVATE DIALOG oDlg CENTERED

RETURN NIL
Saludos,

Carlos Gallego

*** FWH-23.10, xHarbour 1.2.3 Build 20190603, Borland C++7.30, PellesC ***
Cgallegoa
 
Posts: 414
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: ButtonBmp TABSTOP

Postby wartiaga » Fri Jan 05, 2024 11:39 pm

Cgallegoa wrote:
Code: Select all  Expand view
#include "FiveWin.ch"


#define WS_CHILD                 1073741824  // 0x40000000L
#define WS_VISIBLE               268435456   // 0x10000000L
//#define WS_TABSTOP               65536       // 0x00010000L


Function Main()
  LOCAL oDlg, oBtn[3]

    DEFINE DIALOG oDlg FROM 0,0 TO 300,500 PIXEL TRUEPIXEL

    @ 30, 30 BUTTONBMP oBtn[1] PROMPT "&One" OF oDlg PIXEL SIZE 50,30 ACTION MsgInfo("One")
    @ 30, 90 BUTTONBMP oBtn[2] PROMPT "&Two" OF oDlg PIXEL SIZE 50,30 ACTION MsgInfo("Two - without TabStop")
    @ 30,150 BUTTONBMP oBtn[3] PROMPT "&Three" OF oDlg PIXEL SIZE 50,30 ACTION MsgInfo("Three")
     
      oBtn[2]:nStyle:= nOR(WS_CHILD, WS_VISIBLE)

    ACTIVATE DIALOG oDlg CENTERED

RETURN NIL


Hi Carlos,
Your example works great but if i put this solution (I use pelles c .res file) not work. See the line above. Thank you!

REDEFINE BUTTONBMP botaonfs ID 4031 of Folder1:aDialogs[2] Bitmap "DIGNOTAS" TRANSPARENT TOOLTIP "Informar Nfe(s)" cancel action CadNfs()
botaonfs:nStyle:= nOR(WS_CHILD, WS_VISIBLE)
wartiaga
 
Posts: 175
Joined: Wed May 25, 2016 1:04 am

Re: ButtonBmp TABSTOP

Postby Cgallegoa » Sat Jan 06, 2024 12:25 am

Hi,

TestBmp.prg
Code: Select all  Expand view
#include "FiveWin.ch"


Function Main()
  LOCAL oDlg, oBtn[3]

    DEFINE DIALOG oDlg RESOURCE "TEST"

    REDEFINE BUTTONBMP oBtn[1] PROMPT "&One" ID 201 OF oDlg ACTION MsgInfo("One")
    REDEFINE BUTTONBMP oBtn[2] PROMPT "&Two" ID 202 OF oDlg ACTION MsgInfo("Two - Without TabStop")
    REDEFINE BUTTONBMP oBtn[3] PROMPT "&Three" ID 203 OF oDlg ACTION MsgInfo("Three")
     
    ACTIVATE DIALOG oDlg CENTERED

RETURN NIL


TestBmp.rc
Code: Select all  Expand view
TEST DIALOG DISCARDABLE 6, 15, 223, 66
STYLE WS_POPUP|DS_MODALFRAME|WS_CAPTION|WS_SYSMENU|WS_VISIBLE
CAPTION "TXBrowse demo"
FONT 8, "MS Sans Serif"
{
  CONTROL "&One", 201, "Button", WS_TABSTOP, 15, 16, 50, 20
  CONTROL "&Two", 202, "Button", 0x00000000, 72, 16, 50, 20         //  <== Look this line for No TabStop
  CONTROL "&Three", 203, "Button", WS_TABSTOP, 129, 16, 50, 20
}
 


Working fine too.
Saludos,

Carlos Gallego

*** FWH-23.10, xHarbour 1.2.3 Build 20190603, Borland C++7.30, PellesC ***
Cgallegoa
 
Posts: 414
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: ButtonBmp TABSTOP

Postby wartiaga » Sat Jan 06, 2024 3:23 am

Cgallegoa wrote:Hi,

TestBmp.prg
Code: Select all  Expand view
#include "FiveWin.ch"


Function Main()
  LOCAL oDlg, oBtn[3]

    DEFINE DIALOG oDlg RESOURCE "TEST"

    REDEFINE BUTTONBMP oBtn[1] PROMPT "&One" ID 201 OF oDlg ACTION MsgInfo("One")
    REDEFINE BUTTONBMP oBtn[2] PROMPT "&Two" ID 202 OF oDlg ACTION MsgInfo("Two - Without TabStop")
    REDEFINE BUTTONBMP oBtn[3] PROMPT "&Three" ID 203 OF oDlg ACTION MsgInfo("Three")
     
    ACTIVATE DIALOG oDlg CENTERED

RETURN NIL


TestBmp.rc
Code: Select all  Expand view
TEST DIALOG DISCARDABLE 6, 15, 223, 66
STYLE WS_POPUP|DS_MODALFRAME|WS_CAPTION|WS_SYSMENU|WS_VISIBLE
CAPTION "TXBrowse demo"
FONT 8, "MS Sans Serif"
{
  CONTROL "&One", 201, "Button", WS_TABSTOP, 15, 16, 50, 20
  CONTROL "&Two", 202, "Button", 0x00000000, 72, 16, 50, 20         //  <== Look this line for No TabStop
  CONTROL "&Three", 203, "Button", WS_TABSTOP, 129, 16, 50, 20
}
 


Working fine too.


I think I wasn't very clear, in the .res file I put it as a tabstop but as I use the same dialog for 2 different options in the system I would like to set via program whether the button would use the tabstop or not, this is all to avoid creating two dialogs different. Only the tabstop option for this button changes in the 2 options on my system.
Thanks!
wartiaga
 
Posts: 175
Joined: Wed May 25, 2016 1:04 am

Re: ButtonBmp TABSTOP

Postby nageswaragunupudi » Sat Jan 06, 2024 9:57 am

Code: Select all  Expand view
? oBtn:WinStyle( WS_TABSTOP ) --> lActive
oBtn:WinStyle( WS_TABSTOP,  .T.  (or) .F. ) // Enable/Disable the TabStop style
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10248
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: ButtonBmp TABSTOP

Postby wartiaga » Sat Jan 06, 2024 1:43 pm

nageswaragunupudi wrote:
Code: Select all  Expand view
? oBtn:WinStyle( WS_TABSTOP ) --> lActive
oBtn:WinStyle( WS_TABSTOP,  .T.  (or) .F. ) // Enable/Disable the TabStop style


Mr. Nages

Desn't work. In the TABSTOP option of the button in Pelles c I set it to YES but when I use oBtn:WinStyle( WS_TABSTOP, .F. ) it it still continues obeying the initial TABSTOP.

Thank you!
wartiaga
 
Posts: 175
Joined: Wed May 25, 2016 1:04 am

Re: ButtonBmp TABSTOP

Postby karinha » Sat Jan 06, 2024 2:04 pm

wartiaga, explique em português o que você realmente quer fazer no segundo botão, você quer ligar/desligar depois de uma ação do programa(ACTION)? é isso? Qual a razão de ligar/desligar o TABSTOP de um botão? Sinceramente não entendi qual o objetivo disto!

SDS,

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: ButtonBmp TABSTOP

Postby wartiaga » Sat Jan 06, 2024 2:24 pm

karinha wrote:wartiaga, explique em português o que você realmente quer fazer no segundo botão, você quer ligar/desligar depois de uma ação do programa(ACTION)? é isso? Qual a razão de ligar/desligar o TABSTOP de um botão? Sinceramente não entendi qual o objetivo disto!

SDS,

Regards, saludos.


Oi Karinha tudo bem?

Veja só, tenho uma dialog criada em um .res no pelles c ok? Tenho 2 opções no meu sistema que utiliza essa mesma dialog. Em uma das opções eu quero que esse botão não tenha o tabstop e na outra tenha. Isso é para não criar uma outra dialog só por conta do tabstop do botão entendeu? Como é uma dialog que contém muitos objetos não faz sentido eu criar uma nova igual mudando o comportamento no pelles c do tabstop do referido botão.

Obrigado.
wartiaga
 
Posts: 175
Joined: Wed May 25, 2016 1:04 am

Re: ButtonBmp TABSTOP

Postby karinha » Sat Jan 06, 2024 2:31 pm

Tenho 2 opções no meu sistema que utiliza essa mesma dialog.


LOCAL DeOndeVem

Dispara do MENU com DeOndeVem e controla na função.

Como você parte(DeOndeVem) do Menu?

Code: Select all  Expand view

   IF DeOndeVem = "OPCAO1"
      DEFINE BUTTON... WHEN(..)  // Hide/Enable()/Disable(), etc.
   ELSE
      DEFINE BUTTON ... WHEN(..)
   ENDIF
 


Sds.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: ButtonBmp TABSTOP

Postby karinha » Sat Jan 06, 2024 3:09 pm

Veja como eu façco em COMPRAS.PRG para o módulo de COMPRAS() saber o que fazer com o mesmo Botão:

Code: Select all  Expand view

         //-> ESTA EM C:\GERAL GERAL.EXE - HENNING LEGAL. GOSTEI
         SEPARATOR
         MENUITEM "Pedidos de Compras(Cliente) "                             ;
         RESOURCE "ESTOQUE17" COLORRIGHT CLR_HBLUE BOLD                      ;
            ACTION( COMPRAS( DeOndeVem := [CLIENTES] ) )                     ;
            MESSAGE "Manutenção dos Pedidos de Compras "+                    ;
                    "Por Cliente. "

         //-> ESTA EM C:\GERAL GERAL.EXE - HENNING LEGAL. GOSTEI
         SEPARATOR
         MENUITEM "Pedidos de Compras(Fornec.) "                             ;
            RESOURCE "ESTOQUE18" COLORRIGHT CLR_HBLUE BOLD                   ;
            ACTION( COMPRAS( DeOndeVem := [FORNECE] ) )                      ;
            MESSAGE "Manutenção dos Pedidos de Compras "+                    ;
                    "Por Fornecedor."
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: ButtonBmp TABSTOP

Postby karinha » Sat Jan 06, 2024 3:14 pm

E posso controlar qualquer controle(ID) do diálogo, disparar para a função que eu quiser; Ligar/Desligar qualquer controle(ID), etc.


Code: Select all  Expand view

FUNCTION COMPRAS( DeOndeVem )


   IF DeOndeVem = [FORNECE]

      REDEFINE SENSITIVE SAY aSayCliente VAR oSayFornece ID 403 OF oDlg COLOR CLR_CYAN UPDATE RIGHT FONT oFnt TRANSPARENT

      //-> Codigo do Fornecedor - XCODFORNE
      REDEFINE GET aGet[3] VAR XCODFORNE PICTURE "@K 999999999999"           ;
         ID 22 OF oDlg FONT oFnt UPDATE BITMAP "BUSCAR"                      ;
         COLOR nRGB( 000, 000, 000 ), nRGB( 243, 250, 200 )                  ;
         ACTION( MOSTRAR_FORNECEDOR( XCODFORNE, aGet, DbCompras,             ;
                 DbClientes, DbFornece, DbEstoque, DbObserva ) )             ;
         VALID ( PESQUISA_FORNECEDOR( XCODFORNE, aGet, DbCompras,            ;
                 DbClientes, DbFornece, DbEstoque, DbObserva ) )             ;
         WHEN( lCodFornece )

      aGet[3]:lBtnTransparent := .T.       // transparent button
      aGet[3]:bKeyDown := { |nKey| IF( nKey == VK_F7, Eval( aGet[3]:bAction ), Nil ) }
      aGet[3]:cToolTip := OemToAnsi( "Digite o C¢digo do Fornecedor " )

   ENDIF

   IF DeOndeVem = [CLIENTES]

      REDEFINE SENSITIVE SAY aSayCliente VAR oSayCliente ID 403 OF oDlg COLOR CLR_CYAN UPDATE RIGHT FONT oFnt TRANSPARENT

      //-> Codigo do Fornecedor - XCODFORNE
      REDEFINE GET aGet[3] VAR XCODFORNE PICTURE "@K 999999999999"           ;
         ID 22 OF oDlg FONT oFnt UPDATE BITMAP   "BUSCAR"                    ;
         COLOR nRGB( 000, 000, 000 ), nRGB( 243, 250, 200 )                  ;
         VALID ( PESQUISA_CLIENTES( XCODFORNE,                               ;
            aGet, DbCompras, DbClientes, DbFornece, DbEstoque, DbObserva ) ) ;
         ACTION( MOSTRAR_CLIENTES( XCODFORNE,                                ;
            aGet, DbCompras, DbClientes, DbFornece, DbEstoque, DbObserva ) ) ;
         WHEN( lCodFornece )

      aGet[3]:lBtnTransparent := .T.       // transparent button
      aGet[3]:bKeyDown := { |nKey| IF( nKey == VK_F7, Eval( aGet[3]:bAction ), Nil ) }
      aGet[3]:cToolTip := OemToAnsi( "Digite o C¢digo do Fornecedor " )

   ENDIF
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: ButtonBmp TABSTOP

Postby wartiaga » Sat Jan 06, 2024 3:20 pm

karinha wrote:
Tenho 2 opções no meu sistema que utiliza essa mesma dialog.


LOCAL DeOndeVem

Dispara do MENU com DeOndeVem e controla na função.

Como você parte(DeOndeVem) do Menu?

Code: Select all  Expand view

   IF DeOndeVem = "OPCAO1"
      DEFINE BUTTON... WHEN(..)  // Hide/Enable()/Disable(), etc.
   ELSE
      DEFINE BUTTON ... WHEN(..)
   ENDIF
 


Sds.

Regards, saludos.


Veja só, não quero desabilitar o botão ele tem que permanecer cliclável só não pode receber o foco quando der o tab ou o enter entendeu? Em um prg usando essa dialog ele tem que pular o botão com o enter e em outro ele que que receber o foco, só isso. Valeu!
wartiaga
 
Posts: 175
Joined: Wed May 25, 2016 1:04 am

Re: ButtonBmp TABSTOP

Postby karinha » Sat Jan 06, 2024 3:25 pm

Quando PARTIR do MENU com a OPCAO, no ON INIT do DIALOGO, use o XFOCUS() e ponha o FOCO no botão que você quiser.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: ButtonBmp TABSTOP

Postby karinha » Sat Jan 06, 2024 3:31 pm

Code: Select all  Expand view

   IF lAppend  // SE FOR UMA INCLUSAO DE PROPOSTA, ENTRAR AQUI.
 
      ACTIVATE DIALOG oDlg NOWAIT     ;
         ON INIT( XFOCUS( aGet[1] ) ) ;
         VALID( !GETKEYSTATE( 27 ) )

   ELSE  // ALTERACAO DE PROPOSTA, ENTRAR AQUI.

      /*
      ACTIVATE DIALOG oDlg CENTERED              ;
               ON INIT( XFOCUS( aGet[3] ) )
      */

      ACTIVATE DIALOG oDlg NOWAIT     ;  // MDI pedido pela LEDA.
         ON INIT( XFOCUS( aGet[3] ) ) ;  // 3
         VALID( !GETKEYSTATE( 27 ) )

   ENDIF

   ACTIVATE WINDOW oWndChild
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Next

Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: Otto and 85 guests