Programa nao esta obedecendo o foco?
Pessoal, estou com problemas no setfocus deste codigo aqui
Esta linha que esta em negrito deveria receber o foco, mais nao esta recebendo nada, nao aceita nem o enter nem o tab o KewPreview esta mudado para TRUE, o TabOrder esta na sequencia correta, enfim acho que esta tudo certo, mais quando aperto o enter ele vai focar um button em vez do dbloockUpComboBox que eu pedi, inclusive ateh forcei pelo OkKeyPress do edit para focar na onde eu quero, mais nada adianta ele teima em ir para o button, que nao tem nada de comando para receber o foco.
O que esta de errado amigos
No aguardo
Adriano.
procedure TForm6.Edit1Exit(Sender: TObject);
begin
dm.ibq1.close;
dm.ibq1.sql.clear; // acho que não precisa desta linha aqui. Experimente com e sem ela.
dm.ibq1.sql.text := ´select * from sind2 where matricula = :pmatricula´;
dm.ibq1.ParamByName(´pMatricula´).AsString := Edit1.Text;
dm.ibq1.Open;
if NOT dm.ibq1.isEmpty then
begin
LABEL3.CAPTION:=DM.ibq1.FieldByName(´associado´).AsString;
with dm.QryLimpa do
begin
close;
sql.clear;
sql.text := ´select * from corrente WHERE matricula = :pmatricula´; // tinha um ´(´ sobrando nesta sql
parambyname(´pmatricula´).asString := edit1.text;
open;
end;
end
else
begin
messagedlg(´Código do associado não Localizado´,mterror,[mbOk],0);
dm.ibq1.close; // Precisamos fechar a tabela MESTRE.
dm.QryLimpa.close; // E a DETALHES tb.
if application.messagebox(´Digitar Novamente?´,´Aviso´,36)=idyes then
begin
edit1.text:=´´;
edit1.setfocus;
end
else
[b:98e10bc3f1]dblbox1.setfocus;[/b:98e10bc3f1]
end;
end;
Esta linha que esta em negrito deveria receber o foco, mais nao esta recebendo nada, nao aceita nem o enter nem o tab o KewPreview esta mudado para TRUE, o TabOrder esta na sequencia correta, enfim acho que esta tudo certo, mais quando aperto o enter ele vai focar um button em vez do dbloockUpComboBox que eu pedi, inclusive ateh forcei pelo OkKeyPress do edit para focar na onde eu quero, mais nada adianta ele teima em ir para o button, que nao tem nada de comando para receber o foco.
O que esta de errado amigos
No aguardo
Adriano.
Adriano_servitec
Curtidas 0
Respostas
Brasidata
04/12/2006
if application.messagebox(´Digitar Novamente?´,´Aviso´,36)=idyes then
begin
edit1.text:=´´;
edit1.setfocus;
end
else
[b:e2c63565f6]dblbox1.setfocus;[/b:e2c63565f6]
Ola Adriano...
Aqui estou eu novamente dando palpite.
Se deu pra entender direito, você quer que o DBLookupComboBox receba o foco SE o usuário clicar em ´NÃO´ quando questionado se quer digitar novamente...
Se for isso, testei o trecho do seu código acima (aliás, tô reconhecendo esse código de algum lugar! :) ) e não tive problema nenhum com o setFocus.
Caiu certinho no DBLookupComboBox.
O que eu desconfio é que vc tenha algum código no evento ´OnEnter´ do DBLookupComboBox ou no ´OnKeyPress´ do Form que tá redirecionando o foco pro próximo controle (no seu caso, o famigerado button).
Só com as informações acima não deu pra detectar outro problema... Confira estes eventos e se tiver alguma outra informação relevante mencione aqui para podermos te ajudar com mais facilidade.
Bom trabalho.
GOSTEI 0
Adriano_servitec
04/12/2006
Olah [b:0fd4250c5d]Brasidata[/b:0fd4250c5d] blz, obrigado mais uma vez por responder, bom eh o seguinte, nao tem nenhum comando em outro evento que nao seja no onexit do edit e no onkeypress do mesmo, e no dbloockupcombobox soh tem no onkeypress. (Sao codigos para mudar de foco)
[b:0fd4250c5d]Curiosidade:[/b:0fd4250c5d] Coloquei outro edit para ver se funcionava, pois as vezes sem querer colocamos codigos e nem precebemos :D , mais nao funcionou tambem, ai o engraçado eh que o primeiro edit agora funcionando o foco, ou seja esta indo para o dbloockupcombobox, ai resolvi deixar o edit2 com a propriedade visible=False, soh que desta forma o edit um nao passa para o dbloockupcombobox, tenho que deixar o edit2 com a propriedade visible=true, para que funcione direito a ordem dos focos.
[color=red:0fd4250c5d]Resumindo=Por qual motivo isso esta ocorrendo?[/color:0fd4250c5d]
[b:0fd4250c5d]Curiosidade:[/b:0fd4250c5d] Coloquei outro edit para ver se funcionava, pois as vezes sem querer colocamos codigos e nem precebemos :D , mais nao funcionou tambem, ai o engraçado eh que o primeiro edit agora funcionando o foco, ou seja esta indo para o dbloockupcombobox, ai resolvi deixar o edit2 com a propriedade visible=False, soh que desta forma o edit um nao passa para o dbloockupcombobox, tenho que deixar o edit2 com a propriedade visible=true, para que funcione direito a ordem dos focos.
[color=red:0fd4250c5d]Resumindo=Por qual motivo isso esta ocorrendo?[/color:0fd4250c5d]
GOSTEI 0
Emerson Nascimento
04/12/2006
por acaso esse DBLookupComboBox não está ligado numa das tabelas que foram fechadas?
GOSTEI 0
Adriano_servitec
04/12/2006
por acaso esse DBLookupComboBox não está ligado numa das tabelas que foram fechadas?
Olah Emerson, acho que nao, pq se nao na hora em que for passar o foco, vai aparecer uma mensagem que o foco esta invisible (acho que eh algo assim), e tambem clico em cima do dbloockupcompobox numa boa se ele estivesse fechado apareceria o mesmo erro tambem.
To desconfiado que eh pq uso [b:39114127b7]Skins[/b:39114127b7] no projeto.
GOSTEI 0
Brasidata
04/12/2006
[b:9139b95f1f]Curiosidade:[/b:9139b95f1f] Coloquei outro edit para ver se funcionava, pois as vezes sem querer colocamos codigos e nem precebemos :D , mais nao funcionou tambem, ai o engraçado eh que o primeiro edit agora funcionando o foco, ou seja esta indo para o dbloockupcombobox, ai resolvi deixar o edit2 com a propriedade visible=False, soh que desta forma o edit um nao passa para o dbloockupcombobox, tenho que deixar o edit2 com a propriedade visible=true, para que funcione direito a ordem dos focos.
[color=red:9139b95f1f]Resumindo=Por qual motivo isso esta ocorrendo?[/color:9139b95f1f]
Agora eu fiquei até tonto com tanto detalhe...
Realmente isso tá me fugindo totalmente à compreensão.
Quanto aos Skins, eu NUNCA usei então não posso dizer que seja o ´mal feitor´ dessa historia. O que posso lhe assegurar é que experimentei o código num novo projeto com um edt, um dbloockupcombobox e funcionou mais que perfeitamente. (sem Skins).
Vou ficar te devendo dessa vez...
GOSTEI 0