关于GetIconInfo使用中的问题.(100分)

  • 主题发起人 主题发起人 老赵
  • 开始时间 开始时间

老赵

Unregistered / Unconfirmed
GUEST, unregistred user!
如下代码<br>MyCur := TIcon.Create;<br>MyCur.Handle := Getcursor();<br>GetIconInfo(Mycursor.Handle, pIconInfo);<br>Mycur.ReleaseHandle; <br>MyCur.Free; <br>结果发现GetIconInfo 使用后释放不净占用资源.<br>用memproof跟踪发现,调用他后,他会创建一个bitmap,多次调用会产生多个,直至资源耗尽.<br>如何解决?<br>
 
var<br>&nbsp; Form1: TForm1;<br>&nbsp; MyCur : TIcon;<br>&nbsp; a : TIconInfo;<br>implementation<br><br>{$R *.DFM}<br><br>procedure TForm1.FormCreate(Sender: TObject);<br>begin<br>&nbsp; &nbsp;MyCur := TIcon.Create;<br>&nbsp; &nbsp;MyCur.Handle := Getcursor();<br>&nbsp; &nbsp;GetIconInfo(Mycur.Handle, a);<br>end;<br>// GetIconInfo 使用时创建了两个bitmap对象. 需要手工释放这两个对象<br>//释放方法如下<br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br>&nbsp; &nbsp; DeleteObject(a.hbmColor);<br>&nbsp; &nbsp; DeleteObject(a.hbmMask);<br>&nbsp; &nbsp; Mycur.ReleaseHandle;<br>&nbsp; &nbsp; MyCur.Free;<br>end;
 
接受答案了.
 
后退
顶部