Q&A

  • Glyph.Handle을 DeleteObject해줘야 합니까?
안녕하십니까.

오늘은 염치없이 하루에 질문만 두개씩이나...

다음과 같은 코드가 있습니다.

SpeedButton으로부터 상속받은 컴포넌트의

Action이 바뀔 때마다 Glyph이 자동으로 바뀌도록 하는

코드입니다.



procedure TTestSpeedButton.ActionChange(Sender: TObject; CheckDefaults: Boolean);

begin

inherited ActionChange(Sender, CheckDefaults);

if Glyph.Handle <> 0 then begin

DeleteObject(Glyph.Handle);

end;

if Sender is TMapManagerSelectForDetailView then begin

Glyph.Handle := LoadBitmap(HResDll, 'DETAILVIEW');

end

else if Sender is TMapManagerSelectForSimpView then begin

Glyph.Handle := LoadBitmap(HResDll, 'SIMPVIEW');

end

else begin

Glyph := nil;

end;

end;



코드는 위와 같습니다.

그런데 위에 보면

if Glyph.Handle <> 0 then begin

DeleteObject(Glyph.Handle);

end;

이런 부분이 있습니다.

Glyph의 Handle이 바뀔 때, 이렇게 이전 Handle에 대하여 DeleteObject 해 줘야

합니까? 아니면 그냥 두어도 되는지요.

소스를 보았지만 확실히는 잘 모르겠습니다.

꼭 좀 알려주시면 대단히 감사하겠습니다.

읽어주셔서 고맙습니다. 건강한 하루 되십시오.

0  COMMENTS