|
최성규 님이 쓰신 글 :
: 일단, 팁하나: TImage object의 이미지 내용을 없애고, 안보이게 하기
: TImage * Image1;
: ...
: Image1->Visible = false; // 이건 아니고, (단지 안보일 뿐임)
:
: Image1->Picture = NULL; // 이렇게 하면 메모리에서 해제하는 것 같음(VCL 소스 뒤져본 결과)
:
: 다음은 질문__________입니다.
: TImage object가 현재 이미지를 가지고 있는지 아닌지를 알아내는 확실하고
: 합리적인 방법은 무엇일까요?
:
: 긴 에필로그_____입니다.
: 아쉬운대로 방법 1)
: 위 팁에서 힌트를 얻어 Image1->Picture == NULL 로 판단하기:
: 하지만, 프로그램이 막 시작한 시점에는 Image1 에 이미지를 넣지 않았더라도
: Image1->Picture != NULL 이더군요. FormCreate() 따위에서 NULL 초기화를
: 직접 하게끔 코딩을 하고, 또 프로그램 진행중에 Unload하는 상황에서는
: 반드시 Image1->Picture = NULL; assign을 해 준다면 방법 1)을 쓰는 데
: 큰 문제는 없는 것 같습니다.
:
: 아쉰운대로 방법 2)
: Image1->Picture->Width == 0 || Image1->Picture->Height == 0 으로 판단하기:
: 몇 번 해 보는데 그림이 없으면 당연히 폭과 높이가 0 이겠지요?
: 단, 행여 Image1->Width와 Image1->Height로 판단하려 해서는 안됨.
:
: 저는 현재는 '아쉬운 대로' 방법 2)를 쓰고 있습니다. 무리는 없을까요?
: 그럼
:
: 최성규
:
:
안녕하세요
한꼬맹이 입니다.
다음과 같이 해보세요
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(Image1->Picture->Graphic == NULL)
ShowMessage("그림 없다.");
else
ShowMessage("그림 있다.");
}
그럼 참고하시길....
|