Ativar aba do Pagecontrol pelo DGBRID

12/04/2022

0

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

Upmilk

Responder

Post mais votado

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
  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');
nota: eu não esconderia a aba,a penas desabilitaria.
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;


Emerson Nascimento

Emerson Nascimento
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar