Não consigo retornar no TabSheet normalmente com um click?
Pessoal tenho aqui um form com um PageControl e neste PageControl tem dois TabSheet
No primeiro TabSheet tenho um dbgrid e no segundo é em modo forumulario
Então percebi se eu colocar este codigo no oncellclik do dbgrid
E clicar na aba que vai para o segundo tabsheet2 e retornar para a primeira aba aonde esta o tabsheet1 ele não obedece no primeiro click e sim la pelo terceiro clique na aba até retornar, se eu comentar estas linhas ele retorna normal no primeiro click.
O que pode ser isso?
No primeiro TabSheet tenho um dbgrid e no segundo é em modo forumulario
Então percebi se eu colocar este codigo no oncellclik do dbgrid
procedure TfrmEmissaoPed.DBGrid3CellClick(Column: TColumn); begin Edit1.Text := IntToStr(DSPadrao.DataSet.FieldByName(´ID_FORNECEDOR´).AsInteger); Edit2.Text := IntToStr(DSPadrao.DataSet.FieldByName(´ID_CLIENTE´).AsInteger); end;
E clicar na aba que vai para o segundo tabsheet2 e retornar para a primeira aba aonde esta o tabsheet1 ele não obedece no primeiro click e sim la pelo terceiro clique na aba até retornar, se eu comentar estas linhas ele retorna normal no primeiro click.
O que pode ser isso?
Adriano_servitec
Curtidas 0
Respostas
Altingon
03/07/2008
Tenta testar se a TabSheet onde tem o grid é a ativa
Espero ter ajudado
if PageControl1.Activepage = Tabsheet1 then begin Edit1.Text := IntToStr(DSPadrao.DataSet.FieldByName(´ID_FORNECEDOR´).AsInteger); Edit2.Text := IntToStr(DSPadrao.DataSet.FieldByName(´ID_CLIENTE´).AsInteger); end;
Espero ter ajudado
GOSTEI 0
Adriano_servitec
03/07/2008
Obrigado amigo, vou ver aqui
Valeu.
Valeu.
GOSTEI 0
Adriano_servitec
03/07/2008
Já descobri, debugando achei o problema amigo
Olhe no evento onexit destes dois Edits:
Ou seja esta forçando se tiver preenchido outro setfocus, ai ele vai até o JvDBDateEdit1.SetFocus; para depois retornar.
E agora? Tenho que ver como contornar isso :D
Olhe no evento onexit destes dois Edits:
procedure TfrmEmissaoPed.Edit1Exit(Sender: TObject); begin inherited; {if Trim(Edit1.Text) = ´´ then Exit else Edit2.SetFocus; {:Chama a procedure} BuscaFornecedor; end; procedure TfrmEmissaoPed.Edit2Exit(Sender: TObject); begin inherited; {if Trim(Edit2.Text) = ´´ then Exit else JvDBDateEdit1.SetFocus; {:Chama a procedure} BuscaCliente; end;
Ou seja esta forçando se tiver preenchido outro setfocus, ai ele vai até o JvDBDateEdit1.SetFocus; para depois retornar.
E agora? Tenho que ver como contornar isso :D
GOSTEI 0
Altingon
03/07/2008
O que você pode fazer é impedir que o usuario ative outra TabSheet enquanto os critérios não forem atendidos.
GOSTEI 0
Adriano_servitec
03/07/2008
Arrumado
Joguei o SetFocus no evento onKeyPress
procedure TfrmEmissaoPed.Edit1Exit(Sender: TObject); begin inherited; if Trim(Edit1.Text) = ´´ then begin Exit; end; {:Chama a procedure} BuscaFornecedor; end; procedure TfrmEmissaoPed.Edit2Exit(Sender: TObject); begin inherited; if Trim(Edit2.Text) = ´´ then begin Exit; end; {:Chama a procedure} BuscaCliente; end;
Joguei o SetFocus no evento onKeyPress
GOSTEI 0