Retorno de Foco

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
gralak
Usuário Nível 3
Usuário Nível 3
Mensagens: 233
Registrado em: 21 Mar 2007 13:28
Localização: Cianorte/PR

Retorno de Foco

Mensagem por gralak »

Iai Galera to precisando da ajuda de vcs novamente
Eu possuo um form declarado com CHILD que é chamado na função ON INIT do meu form MAIN, após a criação deles o focu fica na janela CHILD, o meu problema a saber como eu faço pra depois da criação mandar esse foco pra janela MAIN novamente .

Obs. * Ja utilizei o nome do textbox.setfocus e não funciona..
* depois da criação do form CHILD o nome do form MAIN .setfocus e tb não funciona

??????????????
MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

Mensagem por MARCELOG »

Olá,
é só vc fechar a child e pronto.
Por outro lado, se vc precisar desse formulário (eu gosto de chamar de janela) aberto, use como modal.
Destarte, tente usar nomewindowmain.setfocus (!)

MarceloG
Água mole em pedra dura tanto bate que até espirra!
Avatar do usuário
gralak
Usuário Nível 3
Usuário Nível 3
Mensagens: 233
Registrado em: 21 Mar 2007 13:28
Localização: Cianorte/PR

Mensagem por gralak »

mas esse nomewindowmain.setfocus (!) se da onde ?
Depois que se da o janela.active do form MODAL ???
MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

Mensagem por MARCELOG »

Para fechar a janela child use:
nomejanelachild.release
Isso, automaticamente, fecha a janela e retorna o foco para a janela chamadora.

Para mudar o foco para a janela main (sem fechar a child - não sei se vai funcionar sendo uma child) use:
nomejanelamain.setfocus

Essa ação deve estar em um botão ou num evento específico da janela child.

@ .... BUTTON
...
ACTION nomejanelamain.setfocus

MarceloG

Ps: só para perceber a diferença, crie uma janela child e uma modal.
Água mole em pedra dura tanto bate que até espirra!
Avatar do usuário
gralak
Usuário Nível 3
Usuário Nível 3
Mensagens: 233
Registrado em: 21 Mar 2007 13:28
Localização: Cianorte/PR

Mensagem por gralak »

Essa de mandar o foco com o main.setfocus tb não funciona
Eu chamo o form child no EVENTO ON INIT do form main ...
MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

Mensagem por MARCELOG »

Então vamos lá Homem Aranha,
o que vc precisa exatamente?
Manter duas janelas ativas ou apenas uma.
Se vc quer manter apenas uma, o uso da cláusula child está correto.
Enquanto ela não for fechada, s.m.j., não é possível mudar o foco para a jnela anterior, pois a child (filha) impõe essa condição.
A janela "dialog" ou "modal" admitem a situação anterior, ou seja, mudança de foco entre janelas.
Observe que nessa condição, a main e a janela? aparecem na barra de status, enquanto na "child" somente aparece a janela main.
Sacou!?
Vc quer uma tela para login de usuário?
Quer apresentar algum aviso?
Informe a necessidade e vamos ver se a gente consegue te ajudar né.

MarceloG
Água mole em pedra dura tanto bate que até espirra!
Avatar do usuário
gralak
Usuário Nível 3
Usuário Nível 3
Mensagens: 233
Registrado em: 21 Mar 2007 13:28
Localização: Cianorte/PR

Mensagem por gralak »

BLZ MARCELOG
O que eu preciso é manter as duas janelas abertas essa janela declarada como CHILD.
Se eu fechar a Janela o Foco volta como vc havia dito, mas se clico no textbox por exemplo o foco vai para a janela main para o textbox e a janela child continua aberta.
O fato é o seguinte eu preciso dessa janela child pois ela contem um timer que fica atualizando e mostrando informações para o usuario..
Será que consegui me expressar melhor agora ???
vlw galera té+++
MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

Mensagem por MARCELOG »

Bem...,
e não dá para colocar o timer na janela main?
Por outro lado, como não uso o timer em minhas aplicações não sei em quais tipos de janelas ele atua.
Entretanto, veja o código fonte da função inputbox.
Digite f3 e mande o windows prourar arquivos contendo a palavra inputbox.
Com certeza vai aparecer o arquivo (acho que é h_widows.prg ou algo assim).
Veja se a sua lógica ou a situação te ajuda.

MarceloG.
Água mole em pedra dura tanto bate que até espirra!
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

Ja q ele tem um timer, é só colocar na função do timer, para dar foco na janela q vc quer... hehe
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Responder