摘要:湖南刘炼
现在软件的界面设计很流行“换肤”(skin),例如icq、winamp、超级解霸等等。这种技术
的应用可以最大程度的彰显用户的个性,所以一经推出就大受欢迎。其实这种技术实现起来很简
单,下面就是我用delphi 4.0换肤的例子。
首先,在窗体上放一个image控件,一个button控件和一个opendialog控件。
然后,修改属性。将窗体的caption属性......
摘要:需要在鼠标离开的时候得到通知吗?看看以下的代码,也许会有帮助。你可以把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......