안녕하십니까.
오늘은 염치없이 하루에 질문만 두개씩이나...
다음과 같은 코드가 있습니다.
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 해 줘야
합니까? 아니면 그냥 두어도 되는지요.
소스를 보았지만 확실히는 잘 모르겠습니다.
꼭 좀 알려주시면 대단히 감사하겠습니다.
읽어주셔서 고맙습니다. 건강한 하루 되십시오.