델파이

델파이xe에서 TImage 의 gif 포맷 TGIFImage에서 TJvGIFImage 으로 변경됨

미스터몽키 2015. 8. 3. 19:11

델파이xe에서 TImage의 Picture 속성에 이미지를 할당할 때  gif 이미지가 TGIFImage에서 TJvGIFImage 포맷으로 변경되었다.

 

예전 버전에서 움직이는 gif 구현할 때 디자인 타임에 TImage 컴포넌트의 Picture 속성에 움직이는 *.gif 파일 설정하고

다음 코드를 실행하면 그림과 같이 움직이는 그림을 구현했었다.

 

  if Image1.Picture.Graphic is TGIFImage then
  begin
    TGIFImage(Image1.Picture.Graphic).Animate := true;
  end;

 

그런데 xe 버전에서 Picture에 *.gif  파일을 설정하면 그림처럼 Picture의 기본 포맷이 TJvGIFImage 로 변경되었다.

 

 

그래서 위의 Animate 속성이 작동하지 않는다. 아마도 TJvGIFImage 속성에 Animate 속성이 없기 때문인것 같다.

 

해결방법은 두가지다

 

1. TImage 컴포넌트 사용시

  동적으로 직접 *.gif 파일을 TGIFImage 로 로드한다

 

procedure TfrmTestMan_main.Button6Click(Sender: TObject);
var g: TGIFImage;
begin
  g := TGIFImage.Create;
  g.LoadFromFile('loading.gif');

  Image1.Picture.Graphic := g;
  TGIFImage(Image1.Picture.Graphic).Animate := True;
  g.Free;

end;

 

2. TJvGIFAnimator 컴포넌트 사용시

  xe부터 기본 설치되는 jvcl의 TJvGIFAnimator  컴포넌트를 이용하면 쉽게 디자인 타임에 구현가능하다.

 

 

TJvGIFAnimator 의 Image속성에 *.gif 파일을 할당하고 Animate 속성을 True 로 설정하면 쉽게 구현된다.