Página 1 de 1

Navegar

Enviado: 26 Mai 2008 10:52
por Vlademir
Tem como navegar entre os GETs e os botões BUTTON ou OWNERBUTTON utilizando a tecla TAB?
Nos exemplos que tenho e nos meus programas, navega somente entre os GETs.

Re: Navegar

Enviado: 26 Mai 2008 11:25
por sygecom
Você esta utilizando a ultima versão da CVS ? foi feita uma correção que dah focu direto em button no final dos GET, sendo assim a tecla TAB passa por ele tmb. E pode tentar usando tmb. nas Dialog "CLIPPER NOEXIT"

Re: Navegar

Enviado: 26 Mai 2008 11:48
por Luciano Bonfim
usa STYLE TABSTOP

Re: Navegar

Enviado: 26 Mai 2008 12:33
por Vlademir
Como consigo a última versão e atualização do xHarbour e HwGui.

Utilizo hoje: xHarbour 0.99.70
hwgui: 2.16

Re: Navegar

Enviado: 26 Mai 2008 13:08
por sygecom
Vlademir escreveu:Como consigo a última versão e atualização do xHarbour e HwGui.

Utilizo hoje: xHarbour 0.99.70
hwgui: 2.16
Você pode baixar no link abaixo:
xHarbour + Contrib + Hwgui 2.16(CVS) + Bcc 5.5.1

Depois para atualizar basta instalar o Tortoise, e ir atualizando a pasta HWGUI.

Re: Navegar

Enviado: 26 Mai 2008 14:31
por Vlademir
Baixei a ultima versão conforme indicado acima, porém não pula dos GETs para os BUTTONS.

Como funciona "STYLE TABSTOP", pois dá TABSTOP, como inexistente.

Tem como mandar um exemplo.

Re: Navegar

Enviado: 26 Mai 2008 14:57
por sygecom

Código: Selecionar todos

@ 400,130   GET oLITROS VAR wLITROS  PICTURE "@E 999,999.9"         SIZE 100,22;
STYLE WS_TABSTOP;
TOOLTIP "Informe a Quantidade de Litros"

Re: Navegar

Enviado: 26 Mai 2008 16:21
por Vlademir
Este é o meu código, o qual não funciona a navegação com o TAB entre os GETs e os botões.
Agradeço a ajuda...

Código: Selecionar todos

function duplicaRecebimentoItemComprado()
Local oDuplicaItemComprado, oFont:= HFont():Add( "Courier",0,-13 )
Local oFont2 := HFont():Add( "MS Sans Serif",0,-13 )

local	nQuantidade,	oQuantidade,;
	oGrava, 	oSai, 	cUsuario, 	cMatricula

	nQuantidade:=0
	INIT DIALOG oDuplicaItemComprado TITLE "Compra - duplicar lançamento"  ;
		CLIPPER NOEXIT ;
	   	AT 0,0  SIZE 400,200 ;
		STYLE DS_CENTER + WS_VISIBLE + WS_POPUP + WS_VISIBLE + WS_CAPTION + WS_SYSMENU ;
		FONT oFont

	@  10,40 SAY "Quantidade que ficará neste lançamento:" ;
   		 	SIZE 350, 22
   	
	@  10,65 GET oQuantidade VAR nQuantidade  SIZE 120,25 ;
    		PICTURE "@e 9,999,999.999" ;
			STYLE WS_TABSTOP+WS_DLGFRAME
	
	@ 140,65 SAY Compras->unidade ;
   			SIZE 50, 22 ;
   			STYLE WS_DLGFRAME

	@  10,150 OWNERBUTTON oGrava SIZE 75,25 ;
                  TEXT "Grava" ;
                  ON CLICK {|| gravaDuplicaItem( cUsuario, cMatricula,nQuantidade), oDuplicaItemComprado:close() }
	
	@  90,150 OWNERBUTTON oSai SIZE 75,25 ;
                  TEXT "Sair" ;
                  ON CLICK {|| oDuplicaItemComprado:close() }

	ACTIVATE DIALOG oDuplicaItemComprado
	oFont:Release()

return nil

Re: Navegar

Enviado: 26 Mai 2008 16:38
por sygecom
Tente assim:

Código: Selecionar todos

function duplicaRecebimentoItemComprado()
Local oDuplicaItemComprado, oFont:= HFont():Add( "Courier",0,-13 )
Local oFont2 := HFont():Add( "MS Sans Serif",0,-13 )

local   nQuantidade,   oQuantidade,;
   oGrava,    oSai,    cUsuario,    cMatricula

   nQuantidade:=0
   INIT DIALOG oDuplicaItemComprado TITLE "Compra - duplicar lançamento"  ;
   CLIPPER NOEXIT ;
   AT 0,0  SIZE 400,200 ;
   STYLE DS_CENTER + WS_VISIBLE + WS_POPUP + WS_VISIBLE + WS_CAPTION + WS_SYSMENU ;
   FONT oFont

   @  10,40 SAY "Quantidade que ficará neste lançamento:" ;
            SIZE 350, 22

   @  10,65 GET oQuantidade VAR nQuantidade  SIZE 120,25 ;
            PICTURE "@e 9,999,999.999" ;
            STYLE WS_TABSTOP+WS_DLGFRAME

   @ 140,65 SAY Compras->unidade ;
            SIZE 50, 22 ;
            STYLE WS_DLGFRAME

   @  10,150 OWNERBUTTON oGrava SIZE 75,25 ;
             TEXT "Grava" ;
             ON CLICK {|| gravaDuplicaItem( cUsuario, cMatricula,nQuantidade), oDuplicaItemComprado:close() };
             STYLE WS_TABSTOP
                  
   @  90,150 OWNERBUTTON oSai SIZE 75,25 ;
             TEXT "Sair" ;
             ON CLICK {|| oDuplicaItemComprado:close() };
             STYLE WS_TABSTOP
                  
   ACTIVATE DIALOG oDuplicaItemComprado
   oFont:Release()

return nil

Re: Navegar

Enviado: 26 Mai 2008 17:20
por Vlademir
Funcionou legal ............

Agora outro problema de navegação:
Quando tem um BROWSE e os botões, tem como com o TAB passar do browse para os botões.
Este é o meu código:

Código: Selecionar todos


     INIT DIALOG oForm 	 CLIPPER  NOEXIT 	; 
            TITLE "Comprados" 		;
             FONT oFont 			;
             AT 0, 0 SIZE 850, 400 
                            
             @  5, 5 BROWSE oBrowse DATABASE OF oForm SIZE 845,340 ;
              		STYLE WS_VSCROLL + WS_HSCROLL+WS_TABSTOP ;
              		ON SIZE {|o,x,y|MoveWindow(o:handle,5,5,x-5,(y-60))} ;
              		ON CLICK {|| detalheOrdemItemComprado(), oBrowse:refresh() } ;
              		MULTISELECT


ADD COLUMN {|| ordemCpra }	TO oBrowse HEADER 'Ord/Compra'
ADD COLUMN {|| alltrim(id) }	TO oBrowse HEADER 'Requisição'	PICTURE "@!" 

     @ 120, 360 BUTTON oDetalhe ;
	CAPTION "Detalhe/Compra" ; 
	SIZE 90,25 ;
	STYLE WS_TABSTOP  ;
	TOOLTIP "Detalhes da ordem de compra"		; 
	ON SIZE {|o,x,y|MoveWindow(o:handle,120,(y-40))} 	;
	ON CLICK {|| detalheOrdemItemComprado(), oBrowse:refresh() }

   @ 215, 360 BUTTON oImprimeOrdem ;
	CAPTION "Imprime/Ordem" ;
	SIZE 80,25 	;
	STYLE WS_TABSTOP  ;				
	TOOLTIP "Imprimir a ordem de compra"	;
	ON SIZE {|o,x,y|MoveWindow(o:handle,215,(y-40))}	;
	ON CLICK {|| imprimeOrdemCompra( oBrowse,.f. ) }

       
        ACTIVATE DIALOG oForm



Re: Navegar

Enviado: 26 Mai 2008 22:18
por sygecom
Nunca usei TAB em Browse, mas acredito que se vc iniciar o focu no Browse, depois pode ir para o Browse o focu, porem sair do Browse com TAB já não sei.

Quem sabe aparece alguem para dar alguma dica !!!

Abraços
Leoanrdo Machado

Re: Navegar

Enviado: 28 Mai 2008 13:02
por esbasso
Sugeri adicionar o CTRL+TAB E CTL+SHIFT+TAB para sair do BROWSE. Taçvez seja implementado.

mas QUEM quiser implementar desde ja

LOGO APOS ESTE
ELSEIF wParam == 33 // PageUp
...

--> ADCIONE ESTE CODIGO
--> ELSEIF wParam == VK_TAB .AND. ::lCtrlPress = .T.
nPos := AScan( ::oparent:acontrols, { | o | o:handle == ::HANDLE } )
IF GetKeyState(VK_SHIFT) < 0
nPos := IIF(nPos <= 1 ,len(::oparent:acontrols),nPos-1)
ELSE
nPos := IIF(nPos = 0 .OR. nPos=len(::oparent:acontrols),1,nPos+1)
ENDIF
::oparent:acontrols[nPos]:SETFOCUS()
///
--> FINAL
ELSEIF wParam == 13 // Enter
::Edit()