摘要:     说到VCL中的消息处理就不能不提到TApplication,Windows会为每一个当前运行的程序建立一个消息队列,用来完成用户与程序的交互,正是通过Application完成了对Windows消息的集中处理!     首先通过Application.Run进入消息循环进行消息的处理,其中调用了HandleMessage。 然后程序中的各个VCL对象又是如何接收到Windows消息的呢... 阅读全文
posted @ 2010-12-10 17:12 覆雨翻云 阅读(2217) 评论(1) 推荐(0) 编辑
摘要: 1. 窗口过程     每个窗口会有一个称为窗口过程的回调函数(WndProc),它带有四个参数,分别为:窗口句柄(Window Handle),消息ID(Message ID),和两个消息参数(wParam, lParam), 当窗口收到消息时系统就会调用此窗口过程来处理消息。(所以叫回调函数) 2 消息类型 1) 系统定义消息(System-Defined Messages) 在SDK中事先定... 阅读全文
posted @ 2010-12-10 16:18 覆雨翻云 阅读(22148) 评论(1) 推荐(4) 编辑
摘要: 小技巧:用代码展开/收缩主从结构     Self.tvDepartment.ViewData.Expand(True);     Self.tvDepartment.ViewData.Collaspe(True);     注:tvDepartment为主表对应的TableView 技巧二:在内置右键菜单的后面增加菜单项     首先应在Form上加一个cxGridPopupMenu控件   以... 阅读全文
posted @ 2010-12-10 00:29 覆雨翻云 阅读(2457) 评论(0) 推荐(0) 编辑
摘要: var i: Integer; Column: TcxGridDBColumn; cxView: TcxGridDBTableView; begin cxView := Self.Levels[0].GridView as TcxGridDBTableView; if cxView.DataController.DataSource nil then if cxVie... 阅读全文
posted @ 2010-12-10 00:28 覆雨翻云 阅读(4870) 评论(0) 推荐(0) 编辑
摘要: 正则表达式最早是由数学家Stephen Kleene于1956年提出,他是在对自然语言的递增研究成果的基础上提出来的。具有完整语法的正则表达式使用  在字符的格式匹配方面上,后来被应用到熔融信息技术领域。     正则表达式并非一门专用语言,但它可用于在一个文件或字符里查找和替代文本的一种标准。许多程序中都使用了正则表达式,但是作为我常用的编程工具之一的Delphi却没有直接提供对正则表达式的支持... 阅读全文
posted @ 2010-12-08 22:02 覆雨翻云 阅读(2479) 评论(0) 推荐(0) 编辑
摘要: 本人最近正在进行呼叫中心的座席端和服务器软件开发,座席端登录部分是进行提取主机信息,然后使用SOCKET提交给远程服务器,服务器再在后台数据库中进行查找信息,进行对比,看是否允许座席端主机登录,因为我的电脑中无法安装SQLSERVER,所以 ,后台数据库暂时使用access小型数据库进行代替,到后期可以改为SQLSERVER数据库,,我在后台数据库中使用了两个表,使用WORKMARK字段将其相关联... 阅读全文
posted @ 2010-12-08 22:00 覆雨翻云 阅读(2307) 评论(0) 推荐(0) 编辑
摘要: 一般来说,由Delphi生成的EXE文件,要比其由它编程语言生成的体积大一些。这主要是由于使用VCL的原因(当然,VCL是有许多优点的!) 以下是减小EXE文件大小的几种途径: 01) 使用加壳工具(如 UPX,ASPack 等) 02) 使用 KOL 03) 不使用VCL来编写程序 04) 使用 ACL (API 控制库) 05) 使用 StripReloc 06) 去除运程调试信息与 TD32... 阅读全文
posted @ 2010-12-08 21:59 覆雨翻云 阅读(846) 评论(0) 推荐(0) 编辑
摘要: 存储过程、存储函数的加密:WITH ENCRYPTION !--[if !supportLineBreakNewLine]-- !--[endif]-- Create procedure dbo.sp_XML_main  @table_name nvarchar(260)=’’, @dirname nvarchar(20)=’’ WITH ENCRYPTION as  begin ....... 阅读全文
posted @ 2010-12-08 21:57 覆雨翻云 阅读(534) 评论(0) 推荐(0) 编辑
摘要: uses ActiveX,ComObj,StdCtrls,ShlObj,FileCtrl; procedure TForm1.N2Click(Sender: TObject); var tmpObject : IUnknown; tmpSLink : IShellLink; tmpPFile : IPersistFile; PIDL : PItemIDList; StartupDirectory ... 阅读全文
posted @ 2010-12-08 21:57 覆雨翻云 阅读(4022) 评论(0) 推荐(0) 编辑
摘要: 在WIN32下用DELPHI侦测目录变化,可用WIN32提供的文件改变通知API来完成。FindFirstChangeNotification, FindNextChangeNotification,FindCloseChangeNotification。 在应用程序中调用这些函数时,产生一个监控这个变化的句柄,可用WAIT函数集来等待这个变化。这样,当监控程序运行时,可以达到监控文件变化的动作。... 阅读全文
posted @ 2010-12-08 21:56 覆雨翻云 阅读(617) 评论(0) 推荐(1) 编辑
摘要: 在WIN32种,通过使用映像文件在进程间实现共享文件或内存共享,如果利用相同的映像名字或文件句柄,则不同的进程可以通过一个指针来读写同一个文件或者同一内存数据块,并把他们当成该进程内存空间的一部分。     内存映像文件可以映射一个文件、一个文件中的指定区域或者指定的内存块,其中的数据就可以用内存读取指令来直接访问,而不用频繁的使用操作文件的I/O系统函数,从而提高文件的存取速度和效率。     ... 阅读全文
posted @ 2010-12-08 21:55 覆雨翻云 阅读(2152) 评论(0) 推荐(0) 编辑
摘要: 声明:CSDN以外的任合团体和个人转载本文必须注明出处和作者。     Delphi自带的TRegistry类只能实现注册表的基本操作,如果我们要实时监视注册表的变化或者扫描注册表特定项下的所有子项,TRegistry类就无能为力了。我啃了半天SDK,终于实现了Delphi对注册表的监视与扫描,不敢独享,拿来献给广大的Delphi爱好者。     监视注册表相关项的改变要用到一个API:Reg... 阅读全文
posted @ 2010-12-08 21:51 覆雨翻云 阅读(849) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/babyvspp/archive/2008/01/01/2008234.aspx unit uThreadPool; {   aPool.AddRequest(TMyRequest.Create(RequestParam1, RequestParam2, ...)); } interface uses   Windows,   Classe... 阅读全文
posted @ 2010-12-08 21:50 覆雨翻云 阅读(6827) 评论(0) 推荐(0) 编辑
摘要: BMDThread控件是一套相当成熟的线程控件,使用它可以让你快速的创建、管理线程。    可以到CSDN或者盒子上下载BMDThread控件。    下面我们用多线程模拟客户端发送文件的例子来简单认识一下它。    在窗体中放置一个TIDClient,TBMDThread,TBMDThreadGroup.三个TEdit,两个按钮(开始线程,结束线程),一个MEMO用于接受线程结果信息    功能... 阅读全文
posted @ 2010-12-08 21:48 覆雨翻云 阅读(4068) 评论(0) 推荐(0) 编辑
摘要: 有几个朋友经常向我问题在DLL中怎么共用一个全局变量。比如像用户登陆后的用户名(UserName)... 其实这个问题很简单。下面我把我的做法写出来大家一起分享。 把共享的变量放在主程序里:UserName,....等等, 在主程序里写两个函数 Function CurUserName():PChar; begin Result:=pchar(UserName); end; procedure S... 阅读全文
posted @ 2010-11-29 16:35 覆雨翻云 阅读(907) 评论(0) 推荐(0) 编辑