자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 39516
공지 유용한 관련 사이트 관리자2 2014.03.20 79018
3012 jar파일을 import해서 개발할수없나요... [1] why 2013.10.23 6449
3011 class tspanel not found. 해결방법 부탁드립니다. [3] 으하하 2013.10.31 9267
3010 XE4로 개발한 프로그램 설치 파일 만들기. [2] 좋은사람 2013.10.31 8014
3009 class TAdvGridWorkbook not found 경우는 어떤 방법이 있나요? [1] 으하하 2013.11.01 7900
3008 아래 링크 에러 답변 안달아주시나요 ? [3] 닉엄뜸 2013.11.02 5534
3007 RichEdit 관련해서 여쭤보고 싶습니다. [2] 한림대의료원정보기술센터 2013.11.15 7416
3006 Richedit에 대해 하나만 더 여쭙겠습니다. [1] 한림대의료원정보기술센터 2013.11.16 6150
3005 ios device deploy 오류 [3] awleeck 2013.11.17 7018
3004 C++ Builder 2010에서 Boost lib 컴파일 문제 NILS 2013.11.21 5634
3003 앱스토어 등록시 오류가 발생합니다. [1] 권순길 2013.11.25 6444
3002 델파이 파이어몽키 안드로이드 앱 내에 스플래시 스크린추가 [1] file 쿠키 2013.12.02 9818
3001 XE5를 사용하여 아이폰앱개발을 동영상보고 따라하는데.. 도와주세요 [3] 임우식 2013.12.06 6785
3000 rtl160.bpl 파일을 찾을 수 없습니다. [1] 괴도코난 2013.12.11 7234
2999 XE3 패치 여부 건 secret 닉엄뜸 2013.12.12 7
2998 안드로이드 와 MSSQL 연결중 Data.DBXMSSQL.dcu 오류발생 건입니다. [1] 성유리 2013.12.20 10860
2997 컴파일 에러 [2] 망치 2013.12.23 6709
2996 델파이5에서 중국어를 지원할 수 있나요? [1] 하승수 2013.12.24 5850
2995 XE2 버젼에서 idHttp 에서 오류 [1] 파란하늘 2013.12.31 6458
2994 Richedit에 대해 질문 있습니다. RTF코드 추출 때문에 그렇습니다. [3] 한림대의료원정보기술센터 2013.12.31 5904
2993 XE5 Android 서비스 어플리케이션 개발 지원은 언제부터? [1] 김진석 2013.12.31 5596