Mudar o foco de uma página para outra

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Pereira
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 14 Ago 2003 06:29

Mudar o foco de uma página para outra

Mensagem por Pereira »

Boa tarde.

Tenho um form com uma TAB que possui 3 páginas (abas).
Ao dar ENTER no último campo da página 1, preciso que mude automaticamente o foco para o primeiro campo da página 2 para facilitar a digitação dos dados.
Tem como fazer isto?

Neste momento, ao digitar o último campo da página 1 (aba 1) e dar <ENTER> ou <TAB>, o foco vai para o topo da TAB para ser selecionado com seta para o lado para que entre na página 2 (aba 2).

Agradeço desde já a atenção.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mudar o foco de uma página para outra

Mensagem por Pablo César »

Oi Pereira, seja bem vindo ao fórum.
Ao dar ENTER no último campo da página 1
Você não disse se o controle é um TEXTBOX. Supondo que sim, veja o seguinte exemplo em HMG:

Código: Selecionar todos

/*
 * HMG - Harbour Win32 GUI library Demo
 *
 * Copyright 2008 Roberto Lopez <mail.box.hmg@gmail.com>
 * http://www.hmgforum.com//
*/

#include "hmg.ch"

Function Main
Local aRows [20] [3]

	aRows [1]	:= {'Simpson','Homer','555-5555'}
	aRows [2]	:= {'Mulder','Fox','324-6432'} 
	aRows [3]	:= {'Smart','Max','432-5892'} 
	aRows [4]	:= {'Grillo','Pepe','894-2332'} 
	aRows [5]	:= {'Kirk','James','346-9873'} 

	DEFINE WINDOW Form_1 ;
		AT 0,0 ;
		WIDTH 640 HEIGHT 480 ;
		TITLE 'HMG Demo' ;
		MAIN 

		DEFINE MAIN MENU
			DEFINE POPUP 'Test'
				MENUITEM 'Get Button Caption' ACTION MsgInfo ( Form_1.Tab_1(1).Button_1.Caption ) 
				MENUITEM 'Set Button Caption' ACTION Form_1.Tab_1(1).Button_1.Caption := 'New'
				SEPARATOR
				MENUITEM 'Get Grid Header' ACTION MsgInfo ( Form_1.Tab_1(4).Grid_1.Header(1) ) 
				MENUITEM 'Set Grid Header' ACTION Form_1.Tab_1(4).Grid_1.Header(1) := 'New'
				SEPARATOR
				MENUITEM 'Set Grid Cell' ACTION Form_1.Tab_1(4).Grid_1.Cell(1,1) := 'New'
				MENUITEM 'Get Grid Cell' ACTION MsgInfo ( Form_1.Tab_1(4).Grid_1.Cell(1,1) )
				SEPARATOR
				MENUITEM 'Show Button' ACTION Form_1.Tab_1(1).Button_1.Show()
				MENUITEM 'Hide Button' ACTION Form_1.Tab_1(1).Button_1.Hide()
				SEPARATOR
				MENUITEM 'Next Page-TAB' ACTION (Form_1.Tab_1.Value := 2,Form_1.Text_3.SetFocus)
			END POPUP
		END MENU

		DEFINE TAB Tab_1 ;
			AT 10,10 ;
			WIDTH 600 ;
			HEIGHT 400 ;
			VALUE 1 ;
			TOOLTIP 'Tab Control' 

			PAGE 'Page 1' IMAGE "exit.bmp"

			      @ 100,250 BUTTON Button_1 CAPTION "Test" WIDTH 50 HEIGHT 50 ACTION MsgInfo('Test!')
				  
				  @ 200,100 TEXTBOX Text_1 VALUE "" ON ENTER InsertTab()
				  
				  @ 300,100 TEXTBOX Text_2 VALUE "" ON ENTER (Form_1.Tab_1.Value := 2,Form_1.Text_3.SetFocus)

			END PAGE

			PAGE 'Page &2' IMAGE "info.bmp"

				DEFINE RADIOGROUP R1
					ROW	100
					COL	100
					OPTIONS	{ '1','2','3' }
					VALUE	1
				END RADIOGROUP
				
				DEFINE TEXTBOX Text_3
				    ROW    230
				    COL    130
				    WIDTH  120
				    HEIGHT 24
				    ONENTER Nil
				    VALUE ""
				END TEXTBOX

			END PAGE

			PAGE 'Page 3' IMAGE "check.bmp"

				@ 100,250 SPINNER Spinner_1 ;
				RANGE 0,10 ;
				VALUE 5 ;
				WIDTH 100 ;
				TOOLTIP 'Range 0,10' ; 
				ON CHANGE PlayBeep() 

			END PAGE

			PAGE 'Page 4' IMAGE "button.bmp"

				@ 50,50 GRID Grid_1 ;
					WIDTH 200 ;
					HEIGHT 330 ;
					HEADERS {'Last Name','First Name','Phone'} ;
					WIDTHS {140,140,140};
					ITEMS aRows ;
					VALUE 1 

			END PAGE

		END TAB

	END WINDOW

	Form_1.Center
    
	form_1.Text_1.SetFocus
	
	Form_1.Activate

Return Nil
Baseado no exemplo C:\hmg.3.4.4\SAMPLES\Controls\Tab\TAB_2 e adicionados TEXTBOXes.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pereira
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 14 Ago 2003 06:29

Mudar o foco de uma página para outra

Mensagem por Pereira »

Pablo,

funcionou perfeitamente.

Obrigado.

:{
Responder