当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 在Delphi程序设计中,我们需要通过解除建立的所有对象来避免内存泄 漏。
 

 

 ·delphi 4.0换肤    »显示摘要«
    摘要:湖南刘炼 现在软件的界面设计很流行“换肤”(skin),例如icq、winamp、超级解霸等等。这种技术 的应用可以最大程度的彰显用户的个性,所以一经推出就大受欢迎。其实这种技术实现起来很简 单,下面就是我用delphi 4.0换肤的例子。   首先,在窗体上放一个image控件,一个button控件和一个opendialog控件。   然后,修改属性。将窗体的caption属性......
 ·给控件添加onmouseleave事件    »显示摘要«
    摘要:需要在鼠标离开的时候得到通知吗?看看以下的代码,也许会有帮助。你可以把timage换成其它控件。关键在于对cmmouseleave消息的处理。 unit main; interface uses windows, messages, sysutils, classes, graphics, controls, forms, extctrls; type tmyimage = ......


Delphi中对象解除技巧
上一页   ...这种方法很简单,只要将上例中button2.free与button3.free换位

即可.第二,在button3.free执行之前将button3变量设置为nil.程序如下: 【程序编程相关:用Timer实现定时运行

【推荐阅读:在DElphi中的DataGrid怎样使

  button2.free; 【扩展信息:修改的一个导出DataSet到xls的单

  button3:=nil;

  button3.free;

  在上面的程序中,将button3置为nil是为了阻止应用程序重新使用已解除

对象的内存.在调用free对象方法时,它会确定对象是否为nil,如果不是,

free对象方法会假定对象仍然存在,使用对象引用为它分配内存,然后调用

destroy释放对象内存,并清除任何相关的虚拟对象方法的数据表格信息.而

destroy对于有对象存在的内存地址不会做任何改变,所以如果在调用destroy

之后测试该内存地址,它仍可能有效.所以当在程序中两次调用一个对象而没

有将对象引用置为nil时,对象引用将仍然引用对象解除之前所占用的内存地

址,这就是产生错误的原因.

  当然,在实际开发过程中,大多数错误不会这样明显,解决的方法也要

依具体而定,不会这么简单地加一句话就能解决问题.我在这里只是说明一

种编程思想,起一个抛砖引玉的作用,具体的东西还要靠你在实践中去探索,

积累.


    摘要: function winexecexw(cmd,workdir:pchar;visiable:integer):dword; var startupinfo:tstartupinfo; processinfo:tprocessinformation; begin fillchar(startupinfo,sizeof(startupinfo),#0); startupinf......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE