Carr Img Periodica/ em TImage
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:
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
Curtidas 0
Respostas
Paullsoftware
24/03/2006
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
assim as imagens mudam normalmente :wink: senão é isso que vc ta querendo não entendi a sua dúvida! :idea:
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:
GOSTEI 0
Paulocesar1301
24/03/2006
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
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
GOSTEI 0
Paullsoftware
24/03/2006
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:
GOSTEI 0
Paulocesar1301
24/03/2006
Infelizmente já tentei tb:
veja o que faço:
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
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
GOSTEI 0
Kroki
24/03/2006
Ja experimentou um Refesh no FINAL do código;
...
Try FRMTela.IdTCPClient1.Disconnect; Except End;
End;
FormX.Refresh;
end;
...
Try FRMTela.IdTCPClient1.Disconnect; Except End;
End;
FormX.Refresh;
end;
GOSTEI 0
Kroki
24/03/2006
..ou melhor tente isso;
...
If FileExists(Tmp + ´tela.jpg´) Then
begin
FRMTela.ImagemTela.Picture := nil;//*
FRMTela.ImagemTela.Picture.LoadFromFile(Tmp + ´tela.jpg´);
...
...
If FileExists(Tmp + ´tela.jpg´) Then
begin
FRMTela.ImagemTela.Picture := nil;//*
FRMTela.ImagemTela.Picture.LoadFromFile(Tmp + ´tela.jpg´);
...
GOSTEI 0
Paulocesar1301
24/03/2006
Inacreditável...
MeuForm.Update;
MeuForm.Repaint;
... não funcionou ...
mas
MeuForm.Refresh
rodou beleza ...
Ninguém merece !!!!!
Vlw pelo help galera !!! :D
MeuForm.Update;
MeuForm.Repaint;
... não funcionou ...
mas
MeuForm.Refresh
rodou beleza ...
Ninguém merece !!!!!
Vlw pelo help galera !!! :D
GOSTEI 0