자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 17197
공지 유용한 관련 사이트 관리자2 2014.03.20 56073
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 99511
3019 리눅스서버에 미들웨어 서버 실행과 관련하여 궁금한 사항이 있습니다. 루키 2020.03.06 121
3018 FireDac Oracle 개발시 [1] 나도몰라 2017.03.20 121
3017 Edit options font관련건 [1] file 김하나 2016.01.12 121
3016 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 13 - Exercise 1 [1] 관리자 2016.05.10 122
3015 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 25 - Exercise 2 [2] 관리자 2016.05.27 122
3014 베를린10.1에서 인디소켓으로 레코스형 전송시 [2] 화이부동 2016.08.10 122
3013 비콘 여러개를 잡아 거리값을 출력하는 소스나 참고할 자료가 있을까요? 손태희 2019.05.06 122
3012 안드로이드 32 업로드 방법 문의 [1] file 토끼왕 2019.12.14 122
3011 Firemoney 로 Mac 및 리눅스 앱 제작시 [1] 100jk 2020.06.26 122
3010 Datasnap Callback에서 문제 파란하늘 2017.06.01 123
3009 정현수님의 토스트 샘플로 공부중 동작하지 않아 질문입니다. [2] 나즈나 2017.06.14 123
3008 No Platform availabel for current project [1] file 까칠스프 2018.04.12 123
3007 컴파일에러 [1] 한시민 2019.12.04 123
3006 Rest 클라이언트 Post방법 질문합니다. [2] 루피 2017.03.29 123
3005 android API file leejh 2015.12.14 123
3004 Native OS Exceptions 파라메타는 어떨때 변경하는 것인가요? sihwan 2020.07.24 123
3003 [베를린 웨비나] 예제 샘플들이 다양했으면 좋겠습니다. 험프리 2016.05.04 124
3002 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 11 - Exercise 6 [1] 관리자 2016.05.10 124
3001 C++ Builder에서 리팩토링 file 겨울잠안자는곰 2019.10.09 124
3000 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 10 - Exercise 3 [1] 관리자 2016.05.10 125