COMO SABER Q UM CONTROLE ESTA COM O FOCO
Pessoal, no evento click() de um menu, eu gostaria de saber se meu GRID está com o foco. Se tiver, faça isso, caso contrário, faça isso:
falow!!
private sub MEUMENU_click()
if MEUGRID.TACOMOFOCO = true then
'commandos
'commandos
else
'commandos
'commandos
endif
falow!!
Ao clicar em um menu qualquer, o controle perde o foco, que passa ao próprio menu. Dessa forma, não é possÃvel obter qual era o foco antes da ação.
O que eu poderia sugerir é que no evento GotFocus do grid você ativasse um flag, desativando-o no GotFocus dos demais controles do Form (exceto os menus, claro).
O que eu poderia sugerir é que no evento GotFocus do grid você ativasse um flag, desativando-o no GotFocus dos demais controles do Form (exceto os menus, claro).
Hehehe!
Flag (bandeira ou sinalizador) é normalmente uma variavel booleana que se utiliza para marcar uma dada condição que, por outros meios, não se tem como identificar. Por exemplo, em um form de acesso ao sistema, utiliza-se um flag para liberar o acesso, consistindo-se o nome do usuário e a senha. Se ambos os campos combinarem com o digitado, marca-se o flag como verdadeiro, caso contrário, como falso. Após X número de tentativas, se o flag continuar como falso, encerra-se a aplicação, sem permitir o acesso.
No caso do foco, é similar. Você cria uma variável com escopo no formulário e a deixa sempre como false, inclusive no GotFocus de todos controles.
No GotFocus do Grid, você a marca como True.
Assim, ao acessar o menu, basta verificar essa variável: Se for verdadeira, o último foco foi no Grid, caso contrário, em algum outro controle.
Mais simples do que parece, não é mesmo?
P.S.: Vez em quando eu me "empolgo" com o jargão... Desculpe.
Flag (bandeira ou sinalizador) é normalmente uma variavel booleana que se utiliza para marcar uma dada condição que, por outros meios, não se tem como identificar. Por exemplo, em um form de acesso ao sistema, utiliza-se um flag para liberar o acesso, consistindo-se o nome do usuário e a senha. Se ambos os campos combinarem com o digitado, marca-se o flag como verdadeiro, caso contrário, como falso. Após X número de tentativas, se o flag continuar como falso, encerra-se a aplicação, sem permitir o acesso.
No caso do foco, é similar. Você cria uma variável com escopo no formulário e a deixa sempre como false, inclusive no GotFocus de todos controles.
No GotFocus do Grid, você a marca como True.
Assim, ao acessar o menu, basta verificar essa variável: Se for verdadeira, o último foco foi no Grid, caso contrário, em algum outro controle.
Mais simples do que parece, não é mesmo?
P.S.: Vez em quando eu me "empolgo" com o jargão... Desculpe.
Tópico encerrado , respostas não são mais permitidas