SetFocus não obedece !!!

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

SetFocus não obedece !!!

Mensagem por rubens »

Olá...

Tenho um formulário CAIXA. Nesse formulário Caixa tem um botão e um Browse. Quando clico no botão abre um segundo formulário, CAIXA_LCTO. Nesse CAIXA_LCTO tem um botão Cancelar. Quando clica no botão cancelar, chama a função CAIXA_CANCELAR com o código abaixo.

Código: Selecionar todos

STATIC FUNCTION CAIXA_CANCELAR()
	IF MSGYESNO('Deseja cancelar o lançamento ?','Cancela lançamento')
		THISWINDOW.RELEASE
		DOMETHOD( 'CAIXA','BRW_CAIXA','SETFOCUS' ) 
	ENDIF
RETURN NIL 	 
Essa função fecha o form atual e posiciona o foco no botão que está no form CAIXA e não vai para o Browse BRW_CAIXA nem por decreto. Estou fazendo algo errado aí...?
Tem alguma sequencia lógica do que dever ser feito.
Primeiro fecho o form e depois posiciono com o setfocus, ou posiciono com o setfocus no outro formulário e somente depois fecho o form atual. ??

Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Daniel
Usuário Nível 3
Usuário Nível 3
Mensagens: 373
Registrado em: 13 Ago 2003 22:42
Localização: Apucarana - PR

SetFocus não obedece !!!

Mensagem por Daniel »

Ola Rubens

Tenta usar sem msgyesno()

Código: Selecionar todos

STATIC FUNCTION CAIXA_CANCELAR()
//	   IF MSGYESNO('Deseja cancelar o lançamento ?','Cancela lançamento')
	      THISWINDOW.RELEASE
	      DOMETHOD( 'CAIXA','BRW_CAIXA','SETFOCUS' )
//	   ENDIF
	RETURN NIL
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

SetFocus não obedece !!!

Mensagem por rubens »

Bom dia Daniel...

Então...

Na realidade depois de muito quebrar a cabeça o que percebi que o erro é o tal do conceito...
Na verdade quando se dá um release o fluxo volta para o ponto de origem que no caso era o caixa_lcto.activate então tudo que você quer que processe depois de fechar o form, tem que ser colocado depois dessa linha.
Por tratar de métodos e propriedades eu imaginava que independente de onde eu estivesse e desse um setfocus, na sequencia poderia executar um release que o foco iria para o setfocus atribuído, mas parece que num é bem assim... ele volta para a próxima linha depois do activate do form. Resolveu o problema lá no fundo você ainda fica querendo que o seu conceito funcione né..
Mas é assim mesmo né.. .aprendendo...

Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Responder