Fórum Total de registros no título do form #490716

30/08/2014

0

Olá pessoal!

Tenho um form de consulta de produtos e sempre que eu executo uma consulta ou um filtro, logo após mando rodar uma procedure para calcular o total de registros retornado e jogar o resultado no título do form (form.caption).
O problema é que não está aparecendo. Só aparece/atualiza quando eu utilizo o Alt+Tab.
Alguém conhece um jeito disso funcionar?
Segue abaixo a procedure:

procedure TFrm_CstProduto.TotalRegistros;
begin
  if pnlFormula.Visible then
    Frm_CstProduto.Caption := 'Consultar Produtos   .:.   Total Registros: ' + IntToStr(dm.qryProF7.RecordCount)
  else
    Frm_CstProduto.Caption := 'Consultar Produtos   .:.   Total Registros: ' + IntToStr(dm.qryProduto.RecordCount);

  Frm_CstProduto.Update;  
end;


Agradeço desde já qualquer ajuda...
Vagner Almeida

Vagner Almeida

Responder

Posts

30/08/2014

Alisson Santos

Em qual evento executando essa procedure.
O correto é executar essa procedure no onShow pois quando ele for abrir o form ele já executa e traz as informações.
Responder

Gostei + 0

30/08/2014

Vagner Almeida

sempre que eu executo uma consulta ou um filtro
Responder

Gostei + 0

31/08/2014

Marcos Saffran

Bom dia Vagner,

você já tentou o "application.ProcessMessages" ?
Responder

Gostei + 0

31/08/2014

Vagner Almeida

Não. Poderia me dar um exemplo de como utilizar?
Responder

Gostei + 0

31/08/2014

Marcos Saffran

procedure TFrm_CstProduto.TotalRegistros;
begin
  if pnlFormula.Visible then
    Frm_CstProduto.Caption := 'Consultar Produtos   .:.   Total Registros: ' + IntToStr(dm.qryProF7.RecordCount)
  else
    Frm_CstProduto.Caption := 'Consultar Produtos   .:.   Total Registros: ' + IntToStr(dm.qryProduto.RecordCount);

  Frm_CstProduto.Update;  

 Application.ProcessMessages;

end;
Responder

Gostei + 0

31/08/2014

Vagner Almeida

Fiz o teste, mas não funcionou :(

Será que não funciona colocando essa informação no título do form?

Acho que vou ter que colocar outro componente como por exemplo TEdit ou TLabel.
Responder

Gostei + 0

31/08/2014

Alisson Santos

tenteou executar como disse.
Disparar a ação quando abrir ou criar um form?
pois fis uns testes aqui e funcionou quando criei.
Responder

Gostei + 0

01/09/2014

Vagner Almeida

O meu form de consulta só apresenta registros quando é realizado uma consulta ou filtro (o filtro dispara uma consulta automaticamente) então não faz sentido eu colocar uma informação no onshow, oncriate ou onactive do form porque irá me trazer "Consultar Produtos .:. Total Registros: 0".

O problema é que após feito uma consulta eu executo a procedure "TotalRegistros;" para ser mostrado no caption do form, mas só aparece quando eu utilizo o alt+tab. Ou seja, é preciso retirar o foco do form para depois focá-lo/ativa-lo novamente para apresentar a mensagem.
Responder

Gostei + 0

01/09/2014

Alisson Santos

entendi, na verdade o seu for não recebeu a atualização, quando você sai de um campo ai ele atualiza.
Já tentou depois de feito ação dar um refresh no formulário. Procure por algo desse gênero,
Responder

Gostei + 0

01/09/2014

Vagner Almeida

Já tentei dando um Update, Application.ProcessMessages e nada.
Vou colocar essa informação em outro local mesmo.

Obrigado à todos pela atenção.
Responder

Gostei + 0

02/09/2014

Ricardo Araujo

colega só fazer isto que funciona...


begin

if pnlFormula.Visible then
Frm_CstProduto.Caption := 'Consultar Produtos .:. Total Registros: ' + IntToStr(dm.qryProF7.RecordCount)
else
Frm_CstProduto.Caption := 'Consultar Produtos .:. Total Registros: ' + IntToStr(dm.qryProduto.RecordCount);

Application.ProcessMessages;

end;
Responder

Gostei + 0

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

Aceitar