자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 15796
공지 유용한 관련 사이트 관리자2 2014.03.20 54604
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 98036
813 델파이로 앱 개발 시 VC에서 만들어진 dll을 사용할 수 있나요? [2] 황새냉이 2017.10.19 163
812 FTP로 이미지 다운로드 [1] 똘귀아빠 2017.10.20 466
811 FDLocalSql사용시 쿼리결과에 한글이 제대로 표시되지 않습니다. [1] 왕초보 2017.10.20 117
810 PAServer관련 질문드립니다. [2] 이노베이션 2017.10.23 341
809 BitBtn 모양이 프로젝트마다 달라요. 도와주세요. [1] file kwy0702 2017.10.26 232
808 BitBtn 모양이 프로젝트마다 달라요. 도와주세요. [1] file kwy0702 2017.10.26 273
807 StringGrid에 RowCount수가 건수는 447개인데 최대 190개까지밖에 안나옵니다. [3] AllwaysHappy 2017.10.26 890
806 DBGrid Row Height 변경 [1] 빨리빨리 2017.10.27 1140
805 Android SDK platform-tools 26.0.2 설치오류 [3] file Jackim 2017.10.29 1732
804 NumberBox, SpinBox, ComboTrackBar 컴포넌트 사용에 대하여. [4] KJ 2017.10.30 139
803 Class TLabelEffect not found [3] 훈기 2017.10.31 126
802 StringGrid에서 선택된 값(KEY)로하여 화면을 호출시 Access violation 발생 [3] AllwaysHappy 2017.10.31 192
801 StringGrid에 출력되는 Data(제목등)이 이중(잔상?)으로 나오는데 해결책을 구합니다. [4] file AllwaysHappy 2017.11.01 13864
800 [질문] AdvToolPanel 컴포넌트 개짐 현상 [1] 라일락 2017.11.03 123
799 mob ole 실행 에러 [1] bursil 2017.11.03 163
798 앱스토아에서 심사 거절 당한 이유를 해결해주세요. [2] file 화이부동 2017.11.07 612
797 [100%활용 세미나] 리눅스 지원 계획을 알고 싶습니다. 험프리 2017.11.10 85
796 [100%활용 세미나] RAD서버와 엔터프라이즈 커넥터를 구매하지 않고 사용가능한가요? 험프리 2017.11.10 102
795 스트링그리드의결과를 Excel File로 출력하는 방법에 대해서 AllwaysHappy 2017.11.10 230
794 계속 에러 메세지가 나오는데 해결방법이 있나요?? [1] file 서동빈 2017.11.13 214