자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 15925
공지 유용한 관련 사이트 관리자2 2014.03.20 54729
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 98187
1873 Datasnap Callback에서 문제 파란하늘 2017.06.01 121
1872 64Bit Package 관련 문의 [1] dyna 2015.07.21 122
1871 위험 경보앱을 코드 입력해서 다만들었는데 실행이 되지 않습니다. [2] file 교타로 2016.05.20 122
1870 RAD 스튜디오질문있습니다. [1] JK 2017.11.28 122
1869 winsoft android용 usbserial과 10.4 구매시 10.2 사용 가능 여부 [2] 대조영 2020.06.08 122
1868 [세미나][DavidI] MidaConverter를 이용한 프로젝트 변환과 비콘 연동에 대해 더 알고 싶습니다. 험프리 2015.10.21 122
1867 [IoT 세미나] 비콘이 발생하는 데이터의 크기는 얼마나 되나요? Humphery 2015.09.03 123
1866 개발환경 지원 문의드립니다~~ [1] 지지배배 2016.10.17 123
1865 어떤 인터넷 주소에 연결했는지 알수있는 방법 없을까요! [1] 루피 2017.04.28 123
1864 RAD Studio 10.2 Starter 버전에서도 설치 횟수 제한이 있나요? [1] 얼짱나 2017.08.10 123
1863 [질문] AdvToolPanel 컴포넌트 개짐 현상 [1] 라일락 2017.11.03 123
1862 trial 버전에서 DB차트 컴포넌트는 지원하지않나요? [1] syc 2018.02.14 123
1861 line-wrap activated option setting [2] 우석이 2015.10.05 124
1860 [마이그레이션 세미나] 마이그레이션 대체 무엇인가 험프리 2018.03.16 124
1859 델파이10.3.3에서 앱배포시 provisioning에 값만 넣으면 에러납니다. 델파이_사랑 2019.12.11 124
1858 IDETheme.ActnCtrls 에러 [1] file Riley 2020.04.17 124
1857 1대 서버에 RAD 서버 패키지 2개 구동하려고 합니다. 가능한 시스템 구성인가요? file 파다닥 2020.04.21 124
1856 DataSnap Server에 메모리 릭이 발생합니다. 델사냥 2015.12.23 124
1855 xe8 에서 tbluetoothledevice에서 onconnect, ondisconnect 이벤트 [1] jojo 2016.03.03 124
1854 [마이그레이션] if char in CharSet then 구문에서 W1050 경고를 너무 많이 발생합니다. 험프리 2017.01.31 125