Programa nao esta obedecendo o foco?

Delphi

04/12/2006

Pessoal, estou com problemas no setfocus deste codigo aqui
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

Adriano_servitec

Curtidas 0

Respostas

Brasidata

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

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]


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

04/12/2006

por acaso esse DBLookupComboBox não está ligado numa das tabelas que foram fechadas?


GOSTEI 0
Adriano_servitec

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

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
POSTAR