Substituindo o SetFocus
Fala Galera,
Gostaria de uma informação, Teria algum codigo que faça o mesmo procedimento do Setfocus ??
Fico no aguardo
Gostaria de uma informação, Teria algum codigo que faça o mesmo procedimento do Setfocus ??
Fico no aguardo
Cleiflavio
Curtidas 0
Respostas
Paulo
04/12/2008
Eu faço uma uma Função mas dentro dela vai o setfocus:
Para usar, passe o controle apenas assim:
Foco(Edit1);
Foco(DBGrid1);
Foco(btnGravar);
E assim vai.
Function Foco(Obj: TWincontrol):boolean; begin Result := Obj.Canfocus; if result then Obj.SetFocus; end;
Para usar, passe o controle apenas assim:
Foco(Edit1);
Foco(DBGrid1);
Foco(btnGravar);
E assim vai.
GOSTEI 0
Cleiflavio
04/12/2008
eu estou tendo um probelma com o Setfocus não sei oq está acontecendo mas sempre quando uso o setfocus o meu formulario de cadastro está pulando uma linha no BD e se eu tiro o setfocus ele não pula linha ele vai add um embaixo do outro.
Será que teria algo que limpasse a memoria, tipo antes de chamar o setfocus ele limpa depois chama.
????????
Será que teria algo que limpasse a memoria, tipo antes de chamar o setfocus ele limpa depois chama.
????????
GOSTEI 0
Paullsoftware
04/12/2008
Ta meio vago esse seu problema, o que exatamente ta ocorrendo e qual o código que está sendo executado?
GOSTEI 0
Martins
04/12/2008
vc já olhou todos os eventos dos componentes deste form, já verifiou se não tem algo no OnEnter de um dos componentes q está causando isso?
Boa sorte e bons códigos.
Boa sorte e bons códigos.
GOSTEI 0
Webjoel
04/12/2008
Olha amigo,
Tavez este seu problema nem seja com o setfocus, mas de qualquer maneira realmente as vezes o setfocus pode causar alguns problemas, eu mesmo parei de usá-lo, atualmente uso o seguinte código:
No caso você pode setar o foco para qualquer componente do form, bastanto apenas passar o nome do mesmo.
Boas Compilações brod!
Tavez este seu problema nem seja com o setfocus, mas de qualquer maneira realmente as vezes o setfocus pode causar alguns problemas, eu mesmo parei de usá-lo, atualmente uso o seguinte código:
ActiveControl := DBEdit1;
No caso você pode setar o foco para qualquer componente do form, bastanto apenas passar o nome do mesmo.
Boas Compilações brod!
GOSTEI 0
Cleiflavio
04/12/2008
Galera não sei oq acontece não, eu usei o ActiveControl e deu o mesmo erro do SetFocus
[C:\Documents and Settings\br1marcl\Desktop\erro_delphi.JPG]
[C:\Documents and Settings\br1marcl\Desktop\erro_delphi.JPG]
GOSTEI 0
Paulo
04/12/2008
O Martins perguntou se há algum código no OnEnter do componente. caso haja, de uma verificada nele(código).
Não entendi a linha acima. Para isso acontecer é necessáriio ver algum código antes, tipo OnEnter, BeforePost de algum componente Dataware. Para isso seria necessário postar os códigos. É melhor para resolver. Mas ainda acho que tem algo no OnEnter desse componente. O evento OnEnter é disparado quando o objeto recebe o foco.
meu formulario de cadastro está pulando uma linha no BD e se eu tiro o setfocus ele não pula linha ele vai add um embaixo do outro.
Não entendi a linha acima. Para isso acontecer é necessáriio ver algum código antes, tipo OnEnter, BeforePost de algum componente Dataware. Para isso seria necessário postar os códigos. É melhor para resolver. Mas ainda acho que tem algo no OnEnter desse componente. O evento OnEnter é disparado quando o objeto recebe o foco.
GOSTEI 0
Cleiflavio
04/12/2008
Deixa eu fazer para vcs entederem.
Eu tenho 4 form de cadastro
1 cadastra um tipo X de CX
2 cadastra um tipo Y de cx
3 cadastra um tipo B de cx
quando entro no cadastro de vc X e faço alguns inserções ele cai no meu banco certinho uma linha embaixo da outra, ai vou para o outro formo caastro cx Y e vou fazendo as inserções , quando eu olho no banco ta cadastrado as inserções da cx X e quando vai passar para inserção da cx Y ele ta pulando uma linha .
O Estranho é que quando eu tiro o Setfocus ou o ActiveControl e vou fazer as inserçoes no meu BD vai certinho nãoo pula nenhuma linha cai conforme eu quero, mas eu presciso que quando eu faço a inserção aponte novamente para o meu primeiro edit.
segu o codigo que estou usando na inserção
procedure TF_limpeza.BitBtn1Click(Sender: TObject);
begin
DM.CDS_GERAL.post;
DM.CDS_GERAL.ApplyUpdates(1);
DM.CDS_GERAL.Insert;
//ActiveControl := N_caixa;
//N_caixa.setfocus;
end;
Espero que tenha esclarecido meu problema
Eu tenho 4 form de cadastro
1 cadastra um tipo X de CX
2 cadastra um tipo Y de cx
3 cadastra um tipo B de cx
quando entro no cadastro de vc X e faço alguns inserções ele cai no meu banco certinho uma linha embaixo da outra, ai vou para o outro formo caastro cx Y e vou fazendo as inserções , quando eu olho no banco ta cadastrado as inserções da cx X e quando vai passar para inserção da cx Y ele ta pulando uma linha .
O Estranho é que quando eu tiro o Setfocus ou o ActiveControl e vou fazer as inserçoes no meu BD vai certinho nãoo pula nenhuma linha cai conforme eu quero, mas eu presciso que quando eu faço a inserção aponte novamente para o meu primeiro edit.
segu o codigo que estou usando na inserção
procedure TF_limpeza.BitBtn1Click(Sender: TObject);
begin
DM.CDS_GERAL.post;
DM.CDS_GERAL.ApplyUpdates(1);
DM.CDS_GERAL.Insert;
//ActiveControl := N_caixa;
//N_caixa.setfocus;
end;
Espero que tenha esclarecido meu problema
GOSTEI 0
Cleiflavio
04/12/2008
Galera esqueci de falar uma coisa, em todos os meus form de cadastro no OnActive eu coloco assim:
procedure TF_consignado.FormActivate(Sender: TObject);
begin
DM.CDS_GERAL.open;
DM.CDS_GERAL.Insert;
end;
Uso isso para que quando abrir o form ele deixar todos meus edit em branco para digitar.
não sei se tem alguma coisa a ver.
procedure TF_consignado.FormActivate(Sender: TObject);
begin
DM.CDS_GERAL.open;
DM.CDS_GERAL.Insert;
end;
Uso isso para que quando abrir o form ele deixar todos meus edit em branco para digitar.
não sei se tem alguma coisa a ver.
GOSTEI 0
Paullsoftware
04/12/2008
Galera esqueci de falar uma coisa, em todos os meus form de cadastro no OnActive eu coloco assim:
procedure TF_consignado.FormActivate(Sender: TObject);
begin
DM.CDS_GERAL.open;
DM.CDS_GERAL.Insert;
end;
Uso isso para que quando abrir o form ele deixar todos meus edit em branco para digitar.
não sei se tem alguma coisa a ver.
você já pensou na hipótese de vc mesmo clicar fora do form depois clicar no form e ativar esse seu comando por mais de uma vez, gerando assim essa linha em branco?faça um teste. coloque os campos da tabela como ´Requeridos´ daí quando for salvar o registro vazio ele vai apresentar erro...
outra coisa, não use esse código no onActive coloque um botão para controlar...
GOSTEI 0
Cleiflavio
04/12/2008
Valeuuu, deu certo manipulei o insert com um botão e resolveu meu problema.
Obrigado
Obrigado
GOSTEI 0