edjal Postado 28 Janeiro Compartilhar Postado 28 Janeiro Prezados, Estou com um problema curioso num form da minha aplicação em Lazarus, o problema é o seguinte: Quando um determinado form de pesquisa é apresentado ao invés do foco ficar no Edit que receberia o valor para pesquisa o foco fica no SystemMenu da janela?!?!? Com isso, quando o usuário digita algum valor para ser consultado, o primeiro dígito é ignorado passando a entrar a partir do segundo. É como se o edit não estivesse com o foco, mas recebendo só depois que o usuário pressiona a primeira tecla, no caso o primeiro dígito, logo entra o valor incorreto. Ex.: para "1234" entra "234"; Sei que é o SystemMenu que está no foco, pois se teclo [Enter] assim que esse form abre, ele aparece. Já fiz diversos testes como: Mostrar o componente ativo num label quando o form é aberto (o edit está lá); Colocar EditX.setFocus no OnShow do Form; Usar o EditX no ActiveControl do Form... Nada disso resolveu. Resolvi retirando a borda e colocando um botão para fechar, mas confesso que gostaria de entender o por que disso e como resolver sem esse quebra galho. Link para o comentário Compartilhar em outros sites More sharing options...
Moderadores Juliomar Marchetti Postado 29 Janeiro Moderadores Compartilhar Postado 29 Janeiro ActiveControl do form está sentado em algo? Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br Link para o comentário Compartilhar em outros sites More sharing options...
edjal Postado 29 Janeiro Autor Compartilhar Postado 29 Janeiro 45 minutos atrás, Juliomar Marchetti disse: ActiveControl do form está sentado em algo? Sim. Está setado justamente no Edit, inclusive ele é o primeiro da lista de tabulação, deveria receber o foco e até recebe. O cursor fica dentro dele só que não pisca, entende? Já coloquei uns testes no OnEnter desse Edit, por exemplo, mudar a cor dele e muda! Também enviar um texto para um memo do tipo " Entrei no EditX", também acontece sugerindo que o edit recebeu o foco, porém a digitação do primeiro caractere não entra, apenas do segundo em diante. Como disse na mensagem, se teclar [ENTER] abre aquele menu de sistema que fica no alto à esquerda da janela. Link para o comentário Compartilhar em outros sites More sharing options...
Moderadores Juliomar Marchetti Postado 29 Janeiro Moderadores Compartilhar Postado 29 Janeiro então ao que me parece é o form que naõ está com o foco até teclar algo Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br Link para o comentário Compartilhar em outros sites More sharing options...
edjal Postado 29 Janeiro Autor Compartilhar Postado 29 Janeiro 7 minutos atrás, Juliomar Marchetti disse: então ao que me parece é o form que naõ está com o foco até teclar algo Não. Me parece que o form está com o foco, porém no ícone SystemMenu (na borda), entende? quando teclo qualquer coisa, ai sim, o foco passa para o Edit. Fiz o seguinte para resolver: Deixei o form sem borda e criei uma borda superior com panel e um botão [X] fechar. Com isso esse icone (SystemMenu) não aparece e o problema fica resolvido, pois o foco vai 100% para o referido Edit, mas entendo que isso é uma gambiarra e fiquei curioso para entender o fato. Não posso dizer para o usuário: "tecle alguma coisa antes de inserir valor..." Esse menu da imagem abaixo aparece quando teclo [Enter] como se a borda do form estivesse focada! Link para o comentário Compartilhar em outros sites More sharing options...
Solution Adhelmar Rondon Postado 1 Fevereiro Solution Compartilhar Postado 1 Fevereiro Em 29/01/2024 at 11:55, edjal disse: Não. Me parece que o form está com o foco, porém no ícone SystemMenu (na borda), entende? quando teclo qualquer coisa, ai sim, o foco passa para o Edit. Fiz o seguinte para resolver: Deixei o form sem borda e criei uma borda superior com panel e um botão [X] fechar. Com isso esse icone (SystemMenu) não aparece e o problema fica resolvido, pois o foco vai 100% para o referido Edit, mas entendo que isso é uma gambiarra e fiquei curioso para entender o fato. Não posso dizer para o usuário: "tecle alguma coisa antes de inserir valor..." Esse menu da imagem abaixo aparece quando teclo [Enter] como se a borda do form estivesse focada! Tira o systemmenu do form, as vezes pode ser alguma sujeira no form, as vezes teria que refazer esse form Link para o comentário Compartilhar em outros sites More sharing options...
Recommended Posts
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora