Fórum Tecla Esc #353712
14/02/2008
0
No OnKeyPres do Form e u fiz
E no OnExit do meu TcxLookupComboBopx eu coloquei
Acontece que quando eu clico ESC, a variável vem False, então executa o restante do evento. Coloquei um break no OnExit e no OnKeyPress, e percebi que após o OnExit, ele(OnKeyPress) é chamado. Na minha opinião, os eventos do Form teriam prioridade. Tô certo? Grato e como resolver isso? Ou seja, ao clicar em ESC, sair sem executar o OnExit de qualquer componente.
Paulo
Curtir tópico
+ 0Posts
14/02/2008
Rodrigoprado
Veja se a propriedade do form keyPreview esta true e a variavel declare ela na seção private. ou public como desejar melhor.
flw
Gostei + 0
14/02/2008
Rodc
Gostei + 0
14/02/2008
Paulo
E Este é meu OnKeyPress
Simplesmente se eu der ESC, o OnExit será executado, e não deveria. A Variavel Fechar vem False na primeira vez.
Gostei + 0
14/02/2008
Onjahyr
Blz.
Gostei + 0
14/02/2008
Rodrigoprado
begin
key := 0; // ao clicar sempre deixe key ocmo 0
Fechar := True;
end;
if key = 13 then
begin
key := 0; // OK correto
Perform(CM_DIALOGKEY, VK_TAB, 0);
end;
{{Simplesmente se eu der ESC, o OnExit será executado, e não deveria. A Variavel Fechar vem False na primeira vez.}}
Este esc eh do form idependente se estiver em qualquer edit ou outro componente com foco eh global para a tela, se der esc entao a var vai receber true sim. esta correto.
Gostei + 0
14/02/2008
Rodc
Paulo, você habilitou o KeyPreview do Form?
Gostei + 0
14/02/2008
Paulo
Gostei + 0
15/02/2008
Paulo
Tenho um Edit, com códigos no OnExit, conforme coloquei acima. Quando estou neste componente e Teclo <ESC>, ele sai do Edit e executa o código do OnExit, ou seja, a variável Fechar vem [color=red:fcf34415fb]False[/color:fcf34415fb]. Logo em seguida dou um <ENTER> e caio novamente no Edit. Dou um <ESC> e não executa o Código do OnExit, porque a variável Fechar vem [color=green:fcf34415fb]True[/color:fcf34415fb]. Esse é o pau que está dando aqui, é questão de lógica eu sei, mas não consegui ainda fazer o certo.
Gostei + 0
15/02/2008
Paulo
Gostei + 0
15/02/2008
Paulo
Gostei + 0
15/02/2008
Paulo
Peguei o ActiveControl no teclar o <ESC>, e fiz:
Isso resolveu todo minha dúvida deste post. valeu a todos.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)