摘要:
1. 系统何时发送WM_PAINT消息? 系统会在多个不同的时机发送 WM_PAINT 消息:当第一次创建一个窗口时,当改变窗口的大小时,当把窗口从另一个 窗口背后移出时,当最大化或最小化窗口时,等等,这些动作都是由系统管理的,应用只是被动地接收该消息,在消息处理 函数中进行绘制操作;大多数的时候应用也需要能够主动引发窗口中的绘制操作,比如当窗口显示的数据改变的时候,这一 般是通过 Invali... 阅读全文
摘要:
Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就完了。然而这并不是多线程编程的全部,我写此文的目的在于对此作一个补充。 线程本质上是进程中一段并发运行的代码。一个进程至少有一个线程,即所谓的主线程。同时还可以有多个子线程。当一个进... 阅读全文
摘要:
从Delphi 5开始VCL中增加了一个新的Contnrs单元,单元中定义了8个新的类,全部都是基于标准的TList 类。 TList 类 TList 类实际上就是一个可以存储指针的容器类,提供了一系列的方法和属性来添加,删除,重排,定位,存取和排序容器中的类,它是基于数组的机制来实现的容器,比较类似于C++中的Vector和Java中的 ArrayList,TList... 阅读全文
摘要:
好久没有写点东西了,刚好看到有朋友发贴提问这个话题,就按照步骤详细写了一遍,希望对大家有用。 1、从QGPL/QDDSSRC下拷贝QDSIGNON到个人LIB/QDSPSRC下。 改了交互子系统QINTER的显示文件,当然是对所有用户生效啦。 kempzhang 回复于:2005-07-29 22:16:01收藏,感谢!就是不知道有没有只设置自己的登陆画面? ibmas400 回复于:2005... 阅读全文
摘要:
(一) 1、查找表中多余的重复记录,重复记录是根据单个字段(myid)来判断 select * from mytable where myidin(select myid from mytable group by myid Having count (myid)>1) 2、删除表中多余的重复记录,重复记录是根据单个字段(myid)来判断,只留有 rowid 最小的记录 delete f... 阅读全文
摘要:
整理了一下用Delphi作的程序的源代码中常见的文件扩展名,并给出了这些文件扩展名的意义,以便源代码管理时作为参照,扩展名以字母为序。 ~* Delphi生成的备份文件,在版本控制库及发布代码中不应该出现这些文件,如果修改了某个文件却因某些原因没有保存的话,可以尝试使用这些文件恢复。 bmp/wmf/emf/gif/jpg/pcx/png/tiff/ico/cur/ani 图形/图标/光标... 阅读全文
摘要:
近日因项目需要接触了打印机,自定义纸张的大小问题困扰了我一个多星期,还以为XP系统无法自定义纸张,后来在网上搜索时无意中发现,打印机都有最小纸张的标准,如果小于或大于这个标准,就算自定义好了页面,都无法选择它(不会显示出来),如果用程序强制设置打印的话,它会按A4的标准走纸,比如我用的Epson LQ-300K+这款打印机,最小纸张是10CM*10.16CM,而我要的宽度正好小于10CM,后来我改... 阅读全文
摘要:
定位 多字段 ADOTable1.Locate('id;age',VarArrayOf(['108',21]),[loPartialKey]); 单字段 ADOTable1.Locate('id','108',[loPartialKey]); Lookup与定位类似 单字段 var v:Variant; begin //根据ID,返回姓名 v:=ADOT... 阅读全文
摘要:
procedure TForm1.TreeView1Click(Sender: TObject); var aPoint: TPoint; aNode: TTreeNode; aHitTest: THitTests; begin if GetCursorPos(aPoint) then begin ... 阅读全文
摘要:
这两天,使用工程中突然在打开窗体的时候出错,大概的意思就是找不开父类文件(因为我是从其他窗体继承过来的)。但如果先打开父类窗体 又不会出错。搞了很久,没有搞定。系统也重装,还是不行。最后看到下面这遍文章才解决。 我的方法是,把父类窗体全部从工程中移除,再从新添加进来就OK了。 有的时候,我们会碰到一些比较烦人的东西,打开某个继承的窗体,会提示说基类窗体找不到,并且找不开这个窗体,必须先打开基类窗体... 阅读全文