자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 19725
공지 유용한 관련 사이트 관리자2 2014.03.20 58660
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 102210
259 Cannot create file "". 파일 이름, 디렉터리 이름 또는 볼륨 레이블 구문이 잘못되었습니다. [3] 황금의미르 2017.03.07 5997
258 Richedit에 대해 하나만 더 여쭙겠습니다. [1] 한림대의료원정보기술센터 2013.11.16 6001
257 begin...end 342page error [1] chris 2013.05.28 6005
256 dbxconnections.ini 보안 cdrd 2013.04.30 6027
255 RAD XE2의 TChart 컴포넌트에서요 [1] 나도몰라 2012.03.26 6054
254 델파이 7 에서 델파이 xe5 로 마이그레이션에 대하여 [1] 규파파 2014.01.14 6094
253 델파이 XE2 에서 Chart FX 사용과 관련해서? [1] maizard 2013.09.03 6121
252 DelphiXE4 dbxconnections.ini not found [4] file 쿠키 2013.06.23 6158
251 Quick Report를 Fast Report로 빠르게 전환하는 방법은 ? [1] 관리자 2014.01.10 6165
250 Paserver에서 에러 [1] file 진이한이 2013.04.19 6191
249 FireMonkey 2 버그 및 업데이트 계획 WR-Dev 2013.04.23 6209
248 델파이 XE4의 IOS 어플리케이션 개발시 TListBox와 TListView가 있습니다. 실행 성능 면에서 어느것이 더 빠를까요? [1] 관리자 2013.05.20 6227
247 한글검색 문의드립니다. [1] 장희진 2013.04.01 6251
246 TIdHttp 맥에서 한글 문제 [1] 소우령 2013.05.16 6255
245 앱스토어 등록시 오류가 발생합니다. [1] 권순길 2013.11.25 6297
244 XE2 버젼에서 idHttp 에서 오류 [1] 파란하늘 2013.12.31 6325
243 jar파일을 import해서 개발할수없나요... [1] why 2013.10.23 6349
242 DataSnap에서 암호화, 압축을 지원하나요? 관리자 2012.03.27 6369
241 Android GCM Service 구현시 문제 [1] Feelple(고재철) 2014.02.14 6374
240 XE5에서 안드로이드앱 개발시 MySql 데이터를 어떻게 주고 받을 수 있나요? [6] 임우식 2014.01.08 6394