자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 17207
공지 유용한 관련 사이트 관리자2 2014.03.20 56080
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 99518
173 XE5에서 어떤 레포팅 툴이 지원되나요? [2] Humphery 2014.01.21 4701
172 DB연결 오류 [1] file 괴도코난 2013.08.26 4757
171 공지 번호 215번에 대한 답이 없어...화면 캡쳐하여 다시 올립니다. [2] file 좋은사람 2013.05.15 4760
170 관리자권한으로 실행하는 EXE 파일 Build하는 Option은? [2] 우석이 2015.10.01 4833
169 XE에서 개발된 DataSnap 프로젝트를 XE2 이상으로 마이그레이션 시 EIPAbstractError 오류 발생 시 대처방안 [1] file Humphery 2014.01.29 4897
168 Form Wizard [2] 강이 2013.05.10 4946
167 Object reference not set to an instance of an object [1] file jwill255 2013.09.25 4946
166 fastreports 관련 문의 드립니다. [1] aaaaa 2020.03.26 4971
165 Delphi XE10.3의 TLabel이 Transparent가 안되는 문제 질문 [1] DevCK 2021.05.25 5015
164 간단히 할수 있는 방법 없을까요> [1] memc 2013.06.04 5070
163 XE4 Professional 구매후 Mobile Add-On Pack을 추가 구매할 수 있는 방법이 있나요? [1] 현자아빠 2013.08.15 5072
162 begin..end 262page error.. [3] chris 2013.05.24 5130
161 Dephi가 C#과 비교해 어떤 장점이 있나요? [1] 베스트드레곤 2015.04.07 5139
160 앱스토어 거부건 IPv6 지원안됨 [3] file 사랑남 2017.06.01 5194
159 DB 관련 질문 입니다! [1] 탄돌이 2013.07.24 5209
158 Delphi XE4 로 맥용 어플 만들고 배포하는 방법이요 [1] 준이킴 2013.06.12 5444
157 XE5 Android 서비스 어플리케이션 개발 지원은 언제부터? [1] 김진석 2013.12.31 5480
156 파이어몽키 프로젝트에서 윈도우 메시지 핸들링? [3] 무심객 2013.08.02 5509
155 애플리케이션이 예상치 않게 중지되었습니다. 파빌신 2014.05.26 5546
154 FMX에서 1bit 이미지 핸들링이 가능할까요? [2] 뎅혀니 2014.01.18 5650