C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[18952] Re:TBitmap::ReleaseHandle() 에 관한 질문.
유영인.Chris [cuperido] 908 읽음    2002-05-28 14:30
ReleaseHandle 은 HBITMAP 과 호환을 위하여 Dormant 등과 실행을 하는 경우가 많습니다. (클립보드 시에요)

일반적으로 그래픽 작업에서는 ReleaseHandle 는 사용하실 필요가 없으며, 이전에 한번 게시물에서 본 것 같은데, ReleaseHandle 이 확실한 Free를 시켜주지 못한다는군요.. 지금은 어떻지 모르겠네요.

ReleaseHandle 의 Return은 HBITMAP 값입니다. 이것을 이용해서 클립보드로 저장 혹은 불러들이는 작업이 많구요..

ReleaseHandle은 HBITMAP이나 Canvas을 다른 작업과 호환시키기 위하여 Dormant를 선언하고, 그것을 Free하기 위하여 대부분 사용하구요. (Canvas 호환 작업은 오히려 BitBlt API가 훨씬 빠르고 간단하구요) 일반적인 Bitmap 작업에서는 사용하실 필요가 없습니다.

1, 2, 3 답변 역시 모두 사용하지 않으셔도 됩니다.

이미지를 초기화 시키시려면,

Image1->Picture->Assign(NULL);

이런 방법으로 초기화 시키실 수 있습니다.



유지상 님이 쓰신 글 :
:   Graphics::TBitmap *Bitmap2 = new Graphics::TBitmap();
:   Bitmap2->LoadFromFile("C:\\Program Files\\Common Files\\Borland Shared\\Images\\Splash\\256color\\factory.bmp ");
:   Canvas->Draw(20,20,Bitmap2); 
:   Bitmap2->ReleaseHandle(); 
:   delete Bitmap2;
:
: 위의 소스코드에 대해서 궁금한 게 있습니다.
: 1. 위의 소스코드에서 Bitmap2->ReleaseHandle();은 꼭 해줘야 되나요? 아니면 안해줘도 문제없나요?
:
: 2. 만약에 Bitmap2에서 Load동작을 두번 할 경우, 즉,
:   Bitmap2->LoadFromFile("C:\\pie.bmp ");
:   Bitmap2->LoadFromFile("C:\\fund.bmp ");
: 와 같이 두번할 경우에는 두번째로 Load하기 전에 아무것도 안해줘도 되나요? 아니면 두번째로 Load하기 전에 아래처럼 ReleaseHandle을 꼭해줘야 하나요?
:
:   Bitmap2->LoadFromFile("C:\\pie.bmp ");
:   Canvas->Draw(20,20,Bitmap2); 
:   Bitmap2->ReleaseHandle(); 
:   Bitmap2->LoadFromFile("C:\\fund.bmp ");
:
: 3.
: Load 안된 상태에서 ReleaseHandle을 호출해도 아무 문제 없나요? 즉, 아래와 같이 해도 문제 없나요?
:
:   Graphics::TBitmap *Bitmap2 = new Graphics::TBitmap();
:   Bitmap2->ReleaseHandle();  //<-- 바로 여기..
:   Bitmap2->LoadFromFile("C:\\Program Files\\Common Files\\Borland Shared\\Images\\Splash\\256color\\factory.bmp ");
:   Canvas->Draw(20,20,Bitmap2); 
:   Bitmap2->ReleaseHandle(); 
:   delete Bitmap2;
:

+ -

관련 글 리스트
18929 TBitmap::ReleaseHandle() 에 관한 질문. 유지상 811 2002/05/27
18952     Re:TBitmap::ReleaseHandle() 에 관한 질문. 유영인.Chris 908 2002/05/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.