Total de registros no título do form
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:
Agradeço desde já qualquer ajuda...
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
Curtidas 0
Respostas
Alisson Santos
30/08/2014
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.
O correto é executar essa procedure no onShow pois quando ele for abrir o form ele já executa e traz as informações.
GOSTEI 0
Vagner Almeida
30/08/2014
sempre que eu executo uma consulta ou um filtro
GOSTEI 0
Marcos Saffran
30/08/2014
Bom dia Vagner,
você já tentou o "application.ProcessMessages" ?
você já tentou o "application.ProcessMessages" ?
GOSTEI 0
Vagner Almeida
30/08/2014
Não. Poderia me dar um exemplo de como utilizar?
GOSTEI 0
Marcos Saffran
30/08/2014
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;GOSTEI 0
Vagner Almeida
30/08/2014
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.
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.
GOSTEI 0
Alisson Santos
30/08/2014
tenteou executar como disse.
Disparar a ação quando abrir ou criar um form?
pois fis uns testes aqui e funcionou quando criei.
Disparar a ação quando abrir ou criar um form?
pois fis uns testes aqui e funcionou quando criei.
GOSTEI 0
Vagner Almeida
30/08/2014
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.
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.
GOSTEI 0
Alisson Santos
30/08/2014
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,
Já tentou depois de feito ação dar um refresh no formulário. Procure por algo desse gênero,
GOSTEI 0
Vagner Almeida
30/08/2014
Já tentei dando um Update, Application.ProcessMessages e nada.
Vou colocar essa informação em outro local mesmo.
Obrigado à todos pela atenção.
Vou colocar essa informação em outro local mesmo.
Obrigado à todos pela atenção.
GOSTEI 0
Ricardo Araujo
30/08/2014
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;
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;
GOSTEI 0