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