Q&A

  • 에니메이션 과 같은 그림관련.
에니메이션에 사용되는 그림 한 30장을 가지고...

1번 부터 30번 까지...

차례로 Timage 에 보여주면

사람이 걸어가는 모양이 되는데....

타이머로 이정 시간 간격을두고 돌려봤습니다...

그런데.... 잘 되긴 하는데..

그림이 바뀌면서 깜빡거리네요.....

듣자하니.....'더블버퍼링' 이라고 하는 방법이 있다는데..

잘 모르겠네요.... 도움 부탁드립니다.
1  COMMENTS
  • Profile
    Falco 2002.09.05 19:55
    더블 버퍼링은 핸들을 가지지 않는 컨트롤에서는 사용할 수 없습니다. TWinControl을 상속받은 VCL에서만 사용이 가능하죠.

    그래서 TImage는 핸들이 없기 때문에 사용할 수 없는데요. 이럴 경우에는 TImage의 Parent가 있을 것입니다. 만약 TImage를 Panel 위에 얹어 놓으셨다면 Parent 는 Panel이 되겠죠. 폼위에 바로 얹으셨다면 Parent는 폼이 될 것이구요.

    그리고 TWinControl을 상속 받은 VCL에는 DoubleBuffered라는 속성이 있는데 이 속성을 true로 해 주시면 됩니다. DoubleBuffered는 Object Inspector에는 나오지 않기 때문에 런타임시에 셋팅을 해 주셔야 합니다.

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Panel1.DoubleBuffered := True;
    end;

    정도로 해 주시면 효과를 보실 것입니다.

    즐코..