Ativar aba do Pagecontrol pelo DGBRID
Olá, eu estou tentando ativar uma aba do pagecontrol, quando eu clico duas vezes no registro, no dbgrid vai abrir a aba correspondente a referencia que esta ligada ao DEPARTAMENTO mais nao estou conseguindo ativar. (Eu uso esse codigo para o cadastro, pegando a referencia que esta no EDIT esse codigo funciona)
FDQuery_Consulta.Close; FDQuery_Consulta.SQL.Clear; FDQuery_Consulta.SQL.Add('SELECT * FROM PRODUTOS'); FDQuery_Consulta.Open; // Verifica qual Departamento, e desativa e habilita abas do PagaControl if FDQuery_ConsultaDEPARTAMENTO.Text = 'ADULTO' then begin Tab_Adulto.Visible := true; Tab_Infantil.Visible := false; Tab_Especial.Visible := false; end; if FDQuery_ConsultaDEPARTAMENTO.Text = 'INFANTIL' then begin Tab_Infantil.Visible := true; Tab_Adulto.Visible := false; Tab_Especial.Visible := false; end; if FDQuery_ConsultaDEPARTAMENTO.Text = 'ESPECIAL' then begin Tab_Especial.Visible := true; Tab_Adulto.Visible := false; Tab_Infantil.Visible := false; end; end;
Upmilk
Curtidas 0
Melhor post
Emerson Nascimento
12/04/2022
em que momento a tabela de produtos é aberta? pelo que entendi você só precisa abrir uma vez durante a execução do programa
o código abaixo deve ficar num evento que captura o posicionamento do registro.
pode ser no OnDataChange do TDataSource. Você não precisa daquela redundância de código. Reduzi pra você.
nota: eu não esconderia a aba,a penas desabilitaria.
daí, para acionar a aba, você implementa o OnDblClick do TDBGrid:
FDQuery_Consulta.Close; FDQuery_Consulta.SQL.Clear; FDQuery_Consulta.SQL.Add('SELECT * FROM PRODUTOS'); FDQuery_Consulta.Open;
o código abaixo deve ficar num evento que captura o posicionamento do registro.
pode ser no OnDataChange do TDataSource. Você não precisa daquela redundância de código. Reduzi pra você.
// verifica qual departamento, e desativa e habilita abas do PagaControl Tab_Adulto.Visible := (FDQuery_ConsultaDEPARTAMENTO.Text = 'ADULTO' ); Tab_Infantil.Visible := (FDQuery_ConsultaDEPARTAMENTO.Text = 'INFANTIL'); Tab_Especial.Visible := (FDQuery_ConsultaDEPARTAMENTO.Text = 'ESPECIAL');
daí, para acionar a aba, você implementa o OnDblClick do TDBGrid:
if (FDQuery_ConsultaDEPARTAMENTO.Text = 'ADULTO' ) then PageControl.ActivePage := Tab_Adulto else if (FDQuery_ConsultaDEPARTAMENTO.Text = 'INFANTIL') then PageControl.ActivePage := Tab_Infantil else PageControl.ActivePage := Tab_Especial;
GOSTEI 1