자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 15767
공지 유용한 관련 사이트 관리자2 2014.03.20 54582
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 97993
813 OPEN API 를 이용하여 개발하려고 합니다. [2] 카이로스 2015.12.12 512
812 iOS에서 Android에서처럼 사용되는 Toast 질문입니다. [1] 랩실전기 2021.05.11 512
» DoubleBuffered 속성을 True 로 설정하고 Picture.Bitmap 를 참조한 상태에서 TImage 에서 Bitmap 이외의 파일을 로드할 경우 이미지가 정상적으로 표시되지 않습니다. [1] file DarkRyu 2020.07.10 514
810 VCL어플리케이션 개발 중 GridPanel 질문드립니다! [2] file 육식육식 2020.04.10 515
809 이미지 StretchDraw문 사용시 글자 깨져 다른 방법 좀 알려주세요? [1] 루카 2018.03.13 516
808 시애틀 관련 패키지 설치 문의 입니다. [1] 시애틀커피 2020.02.25 516
807 Delphi 컴파일 [1] radio 2015.03.03 516
806 ios 앱 빌드 관련 문의 [2] 초보개발자 2021.05.03 516
805 [FireDAC][Phys][Ora]-315. Cannot get vendor library entry point[s]. 오류 대처방법 [1] 험프리 2017.01.11 517
804 임베디드 안드로이드기기 디버깅 [9] hsson 2015.06.25 518
803 delphi로 .Net Framework로 만들어진 WCF서비스를 사용할수 있는지 문의드립니다. 베스트드레곤 2015.03.02 518
802 자바 소스를 델파이로 바꿔주는 툴은 있나요? [1] 화이부동 2016.12.13 519
801 livebinding별표시 쉽읍니다. [1] file wallas 2015.04.07 519
800 어제부터 델파이 실행시 보안 경고 가 뜨네요 [1] file 미스터몽키 2018.07.12 521
799 Decimalseparator문의 [2] 똘귀아빠 2015.10.16 523
798 (공유) 컴파일 시 E1026 File not found: 'Controls.res' 오류가 발생합니다. file 험프리 2020.08.06 523
797 윈도우 8에서 10으로 업데이트 후 인터베이스 접속에 어려움을 겪고 있습니다. [1] file 손보라 2016.06.15 525
796 델파이 IDE 관리자모드 실행 키위 2019.03.05 526
795 델파이에서 dll 사용 관련 문의합니다. [1] ozz 2020.02.20 526
794 인터넷 취약점 문제해결을 위해 SFTP 방식을 지원하고자 합니다. 험프리 2017.04.25 528