자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
  첨부한 소스 내용은 대략 다음과 같습니다.

 

uses

  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,

  System.Classes, Vcl.Graphics,

  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.Imaging.jpeg,

  Vcl.Imaging.GIFImg, Vcl.Imaging.pngimage;

 

type

  TForm1 = class(TForm)

    imgBackground: TImage;

    pnl1: TPanel;

    img1: TImage;

    tmrStartup: TTimer;

    procedure FormShow(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure tmrStartupTimer(Sender: TObject);

  private

    { Private declarations }

    procedure TestDraw();

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.FormCreate(Sender: TObject);

begin

  Left := 0;

  Top := 0;

 

  DoubleBuffered := True;

  pnl1.DoubleBuffered := True;

end;

 

procedure TForm1.FormShow(Sender: TObject);

begin

  // TestDraw();

end;

 

procedure TForm1.TestDraw;

begin

  if not Assigned(imgBackground.Picture.Graphic) then

    Exit;

 

  if not Assigned(img1) then

    Exit;

 

  // 이 부분을 주석처리하면 정상적으로 보입니다.

  if not Assigned(imgBackground.Picture.Bitmap) then

  begin

 

  end;

 

  img1.Picture.Bitmap.Assign(imgBackground.Picture.Graphic);

end;

 

procedure TForm1.tmrStartupTimer(Sender: TObject);

begin

  TTimer(Sender).Enabled := False;

 

  TestDraw();

end;

 

  TestDraw 안에서Assigned(imgBackground.Picture.Bitmap) 을 호출하면

  메인 폼의 DoubleBuffered 속성을 True 로 한 상태에서

  디자인 타임에 imgBackground.Picture 속성에 로드한 이미지가

  Bitmap 이미지일 경우엔 이미지가 정상적으로 표시됩니다.

  Gif  이미지일 경우엔 이미지가 표시가 안됩니다.

  JPEG 이미지일 경우엔 이미지가 표시가 안됩니다.

  PNG 이미지일 경우엔 이미지가 표시가 안됩니다.

  TIF 이미지일 경우엔 이미지가 표시가 안됩니다.

 

  단, TestDraw 안에서Assigned(imgBackground.Picture.Bitmap) 을 호출하는 부분을 주석처리한 경우엔

  Bitmap 이외의 이미지를 Load 하더라도 잘 보입니다.

  또한

  TestDraw 안에서Assigned(imgBackground.Picture.Bitmap) 을 호출하는 부분을 주석처리하지 않은 상태에서는

  DoubleBuffered 속성을 False 로 설정하면 Bitmap 이외의 이미지를 Load 하더라도 잘 보입니다.

 

  1. 왜 이럴까요?

  2. 어떻게 하면 DoubleBuffered 속성을 True 로 설정한 상태에서도

  Bitmap 이외의 이미지일 경우 이미지가 정상적으로 보이게 할 수 있을까요?

 

  DoubleBuffered 속성은 FormCreate 에서 설정하였습니다.

  TestImage 들은 ..\TestImages 에 들어있습니다.

번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 15924
공지 유용한 관련 사이트 관리자2 2014.03.20 54727
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 98182
1873 아랍어등 오른쪽에서 왼쪽 방향으로 사용되는 언어 지원 file Humphery 2014.03.21 2940
1872 IntraWeb 에서 IE열지지 않고 Waiting하는 이유가 뭐죠? [2] file 피터 2014.03.22 2887
1871 [질문] DataSnap에서 메시지 전달방법 [1] cdrd 2014.03.25 2080
1870 델파이 XE5 다국어 프로그램 실행시 오류 [1] file 재덕 2014.04.04 2957
1869 [dcc32 error] E1026 File Not Found : 'controls.res' 에 대하여... [1] 카니로스 2014.04.04 4015
1868 XE5 Trail Version 설치 시 C++ Builder 에서는 "FireMonkey Mobile Application"을 지원하지 않나요? [1] J7 2014.04.08 2017
1867 컴파일시 Unit not found: 'System.pas' 오류 [1] 아침햇살 2014.04.09 2620
1866 델파이 부호관련질문입니다. [2] modong2 2014.04.14 1711
1865 XE5 Android에 TWebbrowser를 사용할 때.. [2] ScorpioM 2014.04.15 2044
1864 폼과 에디터 창 전환시 응답없음이 뜹니다. [2] file 가람아빠 2014.04.22 2184
1863 앱 광고 적용하는 방법.. [1] file 김하나 2014.04.26 1470
1862 TcpClient 컴포넌트 사용에 관하여 질문 드리겠습니다. [1] 김종진 2014.04.29 3307
1861 DataSnap에서 NetWork 여러개인 경우 파빌신 2014.04.30 1357
1860 DataSnap 기능에 대한 질문 드립니다. [2] 파빌신 2014.05.01 1608
1859 구글 플레이스토어에 올릴 때 업로드 실패. [2] file ScorpioM 2014.05.02 2199
1858 안드로이드 가상머신... [1] 파빌신 2014.05.05 1988
1857 모바일 개발시 ListView에 관하여... [4] 파빌신 2014.05.05 2926
1856 RAD Studio 64bit 디버깅 시 "unable to create process" 오류 메시지가 나오는 경우 대처방안 [4] file Humphery 2014.05.07 9036
1855 C언어로 된 DLL 결과값이 제대로 안들어오는데 도움을 요청합니다..^^ [1] 반벽이 2014.05.08 1951
1854 cannot run project unless a host application id defined. use the run/parameters... [1] file 그래그래 2014.05.08 3196