Cezar Posted January 3, 2004 Report Share Posted January 3, 2004 OLA, Na DIALOG tenho um FOLDER com 3 guias ( abas ), em cada aba ( pagina ) 3 ou 4 GETs: No final da edição dos gets da pagina-1, ao invés de ir para a pagina-2, preciso posicionar o foco no botão "X" que está fora da FOLDER; depois da edição dos gets da pagina-2, ao invés de ir para pagina-3, preciso posicionar o foco no Botão "X" e assim sucessivamente... Ao final do ultimo get de cada pagina da FOLDER, ao invés de ir para pagina seguinte vou para o Botão "X" ?? Se voces tiverem alguma sugestão eu agradeço !!!! Quote Link to comment Share on other sites More sharing options...
karinha Posted January 3, 2004 Report Share Posted January 3, 2004 Olá... Não entendi muito bem o que você está Querendo, nem o motivo disto... mas vamos começar assim... Quem sabe não dá certo... // Tente assim... @ 6.5, 2.0 BUTTON oBtn_Acao PROMPT "&Acao" ; ACTION Botao_X( oDlg ) // ( GetKeyState( VK_ESCAPE ) ) @ 6.5, 8.0 BUTTON oBtn_Saida PROMPT "&Saida" ; ACTION( oDlg:End() ) CANCEL // Ou Assim... ACTIVATE DIALOG oDlg CENTERED ; ON INIT ( GetKeyState( VK_ESCAPE ) ) DbCloseAll() EndDialog() GlobalFree() ResAllFree() RETURN NIL //----------------------------------------------------------------------------- Function Botao_X( oDlg ) GetKeyState( VK_ESCAPE ) ? 'Estou No Botao X' oDlg:SetFocus() oDlg:Refresh() //??? oDlg:UpDate() Return Nil João Santos São Paulo-Brasil (11) 3106-2832 a Noite karinhannah@ubbi.com.br Quote Link to comment Share on other sites More sharing options...
evandro Posted January 4, 2004 Report Share Posted January 4, 2004 Olá, João, já entendi diferente. Acho que ele quer é que ao dar no último get da página 1, vá direto para o primeiro get da página 2. Cezar, se for isto, inclua após o último get da página 1: oGetX_1 : bKeyDown:={|nKey|iif(nKey==VK_RETURN,(oFld:setoption(2),oGet1_2:setfocus()),)} Onde oGetX_1 é o último get da página 1 e oGet1_2 é o primeiro get da página 2. []s, Evandro G. de Paula Curvelo - MG evandro@skillnet.com.br (Escr. - na Cidade) imortal@skillnet.com.br (Res. - na Roça) Quote Link to comment Share on other sites More sharing options...
Cezar Posted January 4, 2004 Author Report Share Posted January 4, 2004 Karinh e Evandro, bom dia ! Evandro é quase isso, só que ao invés de ir para o primeiro Get da pagina-2 eu vou para o Botão "X" ..... Ex.: Pagina-1 Pagina-2 Pagina-3 Get1 Get4 Get7 Get2 Get5 Get8 Get3 Get6 Get9 No final do Get3 vou para Botão "X" No final do Get6 vou para Botão "X" No final do Get7 vou para Botão "X" .... No botão "X", decido se quero ir para pagina-2,3 ou se vou gravar ou cancelar as informaçoes. A pagina-1 é a principal e as paginas 2 e 3 tem apenas alguns parametros que refletem na informaçoes da primeira pagina, que serão modificadas em situaçoes especiais. Será que melhorou ?? Grato. Quote Link to comment Share on other sites More sharing options...
karinha Posted January 4, 2004 Report Share Posted January 4, 2004 Cezar... Não faz sentido! No botão "X", decido se quero ir para pagina-2,3 ou se vou gravar ou cancelar as informaçoes. Como que você vai 'decidir' o que fazer, se o botão "X", só te per- mite uma ação: Sair!? Pois ele é o 'ESCAPE'! Não compreendo... Não teria outra forma de você tomar esta decisão? Você não prefere postar o código, explicando nele o que você pretende fazer com mais clareza? Não vejo solução imediata em cima do botão 'X', não consigo imaginar nenhuma saida desta forma... Pelo que eu entendo, o botão 'X' da dialog já fica ativo intermitentemente, não tem como eu interferir nele, sem que o programa 'ESCAPE'... Entende? Se você usar o ALT+LETRA da ABA não resolve seu problema? Se você usasse o oJump não resolveria? como no exemplo abaixo: // Neste Get, Entra o Vendedor, e Pula Para o Outro Folder Automatico REDEFINE GET oGet1 VAR oDbf:Vendedor PICTURE "@K!" ; ID 39 OF oFld:aDialogs[ 1 ] ; FONT oFont UPDATE ; COLOR CLR_BLACK, CLR_HCYAN ; CURSOR oHand ; MESSAGE ( OemToAnsi( "Vendedor" ) ) ; VALID !Vazio( oDbf:Vendedor ) .AND. ; IF( GetASyncKey( VK_RETURN ) .OR. ; GetASyncKey( VK_DOWN ), ; ( oGet1:oJump := oGet2, ; oFld:SetOption( 2 ), oFld:SetFocus(), ; oFld:Refresh(), .T. ), .T. ) REDEFINE GET oGet2 VAR oDbf:Nome_Artis PICTURE "@K!" ; ID 22 OF oFld:aDialogs[ 2 ] ; FONT oFont UPDATE ; COLOR CLR_HRED, CLR_HCYAN ; CURSOR oHand ; MESSAGE ( OemToAnsi( "Nome Art¡stico" ) ) ; VALID IF( oGet2:oWnd:nLastkey = VK_UP, ; ( oGet2:oJump := oGet1, ; oFld:SetOption( 1 ), oFld:SetFocus(), ; oFld:Refresh(), .T. ), .T. ) Usando o oGet e SetOption e o oJump, você mandaria para o Get que você quisesse, e para o Folder que você quisesse, ou seja, você pode pular do Folder 1 para o 7 do folder 7 para o 3 do 3 para o 5 do 5 para 1 do 1 para 4 e assim sucessivamente tandeu? Veja comandos: GetASyncKey e nLastkey. Espero tê-lo ajudado. Abraços. Que dureza... Só tomando um dreher! Sinceramente, não entendi Cezar... Sorry! João Santos São Paulo-Brasil (11) 3106-2832 a Noite karinhannah@ubbi.com.br Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.