Fórum Carr Img Periodica/ em TImage #317234

24/03/2006

0

Povo do forum,

Tenho um programinha simples que Lê periodicamente uma imagem jpg salva em uma pasta e carrega em um TImage num form que não tem mais nada além do próprio TImage, que ocupa toda a área do desktop útil do usuário.
Agora o problema: Não consegui fazer com que o TImage receba a segunda imagem sem ter que dar um Hide e um posterior Show...

Tentei repaint, refresh, uso até o ´Self.DoubleBuffered := True;´ no OnCreate, mas nada faz com que a bendita segunda imagem (e as subseqüentes) apareçam... algo que eu possa ter esquecido de colocar ?

:wink: Abs e Bons Códigos :wink:


Paulocesar1301

Paulocesar1301

Responder

Posts

24/03/2006

Paullsoftware

não entendi exatamente a sua dúvida, mais fiz um teste aqui e funcionou perfeitamente assim:
coloquei:
1 [b:3b219c0b2f]DirectoryListBox1[/b:3b219c0b2f]
1 [b:3b219c0b2f]FileListBox1[/b:3b219c0b2f]
1 [b:3b219c0b2f]Timer[/b:3b219c0b2f]
e fiz assim pra testar:
no timer
procedure TForm1.Timer1Timer(Sender: TObject);
var
i:Integer;
begin
i := FileListBox1.ItemIndex;
if i<0 then i:=0 else i := i+1;
if i < FileListBox1.Count then
FileListBox1.ItemIndex := i else i:=0;
Image1.Picture.LoadFromFile(FileListBox1.FileName);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
DirectoryListBox1.Directory := ´C:\Windows\´;
end;

assim as imagens mudam normalmente :wink: senão é isso que vc ta querendo não entendi a sua dúvida! :idea:


Responder

Gostei + 0

24/03/2006

Paulocesar1301

Concordo que não me expressei bem...

Estou com meu sisteminha de Monitoração de tela e este carrega imagens do micro na rede... até aí tudo certo, porém... ao carregar essas imagens, a primeira é carregada normalmente, mas da segunda em diante o TImage não ´refresca´ a imagem (apesar de recebê-la_ sei disso, pois se minimizares o form e restaurá-lo a imagem é alterada !!), mesmo que eu use o refresh, update, repaint e afins !!!!
Não sei o que pode ser, pois sempre trabalhei com coisas assim e nunca tive esse problema !

Abs


Responder

Gostei + 0

24/03/2006

Paullsoftware

não sei, mais já usou [b:db95ea1d1e]application.ProcessMasseges[/b:db95ea1d1e]?? não sei esta correto, estou sem delphi aqui na máquina (lan-house), mais uma melhor ajuda, posta o código ai... :wink: talvez amanhã eu entre, senão somente na segunda :cry: é que num tenho net em casa, telemar é froid :roll: :roll:


Responder

Gostei + 0

25/03/2006

Paulocesar1301

Infelizmente já tentei tb:

veja o que faço:

procedure Capturando;
Var Stm: TStream;
begin
  Try
    FRMTela.IdTCPClient1.Host := IPUsu;
    FRMTela.IdTCPClient1.Connect;
    FRMTela.IdTCPClient1.WriteLn(´TELA´);
    Stm := TFileStream.Create(Tmp + ´tela.jpg´,fmCreate);
    try
      while FRMTela.IdTCPClient1.Connected do
         FRMTela.IdTCPClient1.ReadStream(Stm,-1,true);
    except
    end;
    FreeAndNil(Stm);

    If FileExists(Tmp + ´tela.jpg´) Then
    begin
      FRMTela.ImagemTela.Picture.LoadFromFile(Tmp + ´tela.jpg´);

      // *** aqui é que está o problema
      Try
        FRMTela.Hide;
      Finally
        FRMTela.Show;
      End;
      // *** aqui é que está o problema

    end
    Else begin
      FRMTela.ImagemTela.Picture := nil;
    end;

    Try FRMTela.IdTCPClient1.Disconnect; Except End;
  Except
    FRMTela.ImagemTela.Picture := nil;
    Try FRMTela.IdTCPClient1.Disconnect; Except End;
  End;
end;


Na parte que diz: ´// *** aqui é que está o problema´ é exatamente onde tentei de tudo para que a imagem atualizasse, mas nada... inclusive o bendito ProcessMessages

Vlw mais uma vez pela atenção


Responder

Gostei + 0

26/03/2006

Kroki

Ja experimentou um Refesh no FINAL do código;
...
Try FRMTela.IdTCPClient1.Disconnect; Except End;
End;
FormX.Refresh;
end;


Responder

Gostei + 0

26/03/2006

Kroki

..ou melhor tente isso;
...
If FileExists(Tmp + ´tela.jpg´) Then
begin
FRMTela.ImagemTela.Picture := nil;//*
FRMTela.ImagemTela.Picture.LoadFromFile(Tmp + ´tela.jpg´);
...


Responder

Gostei + 0

27/03/2006

Paulocesar1301

Inacreditável...

MeuForm.Update;
MeuForm.Repaint;
... não funcionou ...

mas

MeuForm.Refresh
rodou beleza ...

Ninguém merece !!!!!

Vlw pelo help galera !!! :D


Responder

Gostei + 0

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

Aceitar