TImage não está atualizando imagem em tempo real.

Delphi

15/08/2017

Olá, tenho um componente TImage atualizando com TTimer no intervalo de 1000ms, porém só mostra a imagem caso eu minimize e maximize ou se troco a propriedade do TImage para false e true novamente.

Soluções que já tentei.

procedure TFPrincipal.ComTerminal1StrRecieved(Sender: TObject; var Str: string);
begin
  Image1.Picture := Nil;
  if (Str = 'L1D') then
    Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'imagens/lampada_desligada.png')
  else
    Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'imagens/lampada_ligada.png');
end;



procedure TFPrincipal.Timer1Timer(Sender: TObject);
begin
  if BgQG.Visible then
    ComPort1.WriteStr('s');
  Application.ProcessMessages;
end;
Gabriel Costa

Gabriel Costa

Curtidas 0

Respostas

Luiz Vichiatto

Luiz Vichiatto

15/08/2017

Você habilitou o TTimer para true?

Timer1Timer.Enabled := true 
GOSTEI 0
Gabriel Costa

Gabriel Costa

15/08/2017

Você habilitou o TTimer para true?

Timer1Timer.Enabled := true 


Sim, o código está tudo funcionando, porém para eu conseguir ver a imagem atualizada, eu preciso minimizar e maximar o software, como se eu tivesse que dar um Refresh no form.
GOSTEI 0
Douglas Souza

Douglas Souza

15/08/2017

Olá, tenho um componente TImage atualizando com TTimer no intervalo de 1000ms, porém só mostra a imagem caso eu minimize e maximize ou se troco a propriedade do TImage para false e true novamente.

Soluções que já tentei.

procedure TFPrincipal.ComTerminal1StrRecieved(Sender: TObject; var Str: string);
begin
  Image1.Picture := Nil;
  if (Str = 'L1D') then
    Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'imagens/lampada_desligada.png')
  else
    Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'imagens/lampada_ligada.png');
end;



procedure TFPrincipal.Timer1Timer(Sender: TObject);
begin
  if BgQG.Visible then
    ComPort1.WriteStr('s');
  Application.ProcessMessages;
end;


Opa Gabriel, belezinha?

Tente utilizar o seguinte comando: "image1.refresh", após a sua verificação de lampada ligada ou desligada.

Espero que funcione.

Um forte abraço.

Att, Douglas Claudio.
GOSTEI 0
POSTAR