星辰日月00

欲多则心散,心散则志衰,志衰则思不达也!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年4月2日

摘要: 在Windows大行其道的今天,windows界面程序受到广大用户的欢迎。对这些程序的操作不外乎两种,键盘输入控制和鼠标输入控制。有时,对于繁杂 的,或重复性的操作,我们能否通过编制程序来代替手工输入,而用程序来模拟键盘及鼠标的输入呢?答案是肯定的。这主要是通过两个API函数来实现的。 下面以Delphi为例来介绍一下如何实现这两个功能。模拟键盘我们用Keybd_event这个api函数,模拟鼠标按键用mouse_event函数。大家不用担心,在delphi里调用api函数是很方便的事。 先介绍一下Keybd_event函数。Keybd_event能触发一个按键事件,也 就是说... 阅读全文
posted @ 2013-04-02 08:28 星辰日月00 阅读(304) 评论(0) 推荐(0) 编辑

2012年9月25日

摘要: Application.ProcessMessages作用 运行一个非常耗时的循环,那么在这个循环结束前,程序可能不会响应任何事件,按钮没有反应,程序设置无法绘制窗体,看上去就如同死了一样,这有时不是很方便,例如于终止循环的机会都没有了,又不想使用多线程时,这时你就可以在循环中加上这么一句,每次程序运行到这句时,程序就会让系统响应一下消息,从而使你有机会按按钮,窗体有机会绘制。 阅读全文
posted @ 2012-09-25 15:29 星辰日月00 阅读(152) 评论(0) 推荐(0) 编辑

2012年9月20日

摘要: 原型:function paramstr(i:index):string 对于任何application paramstr(0)都默认代表的是应用程序的绝对路径。那么有paramstr(0),就肯定有paramstr(1),paramstr(2)...了。它们的值又是什么了?我试了下取出的是空值,又不能赋值。 delphi帮助中说Returns a specified parameter from the command-line.从命令行中返回一个特别的参数。 折腾了半天才搞清楚,就是在exe文件后面可以跟参数,paramstr 获取的就是exe文件后面跟参数。如有可执行文件project. 阅读全文
posted @ 2012-09-20 09:00 星辰日月00 阅读(257) 评论(0) 推荐(0) 编辑

2012年8月18日

摘要: oracle中的select语句可以用START WITH...CONNECT BY PRIOR子句实现递归查询,connect by 是结构化查询中用到的,其基本语法是:select ... from <TableName> where <Conditional-1>start with <Conditional-2>connect by <Conditional-3>;<Conditional-1>:过滤条件,用于对返回的所有记录进行过滤。<Conditional-2>:查询结果重起始根结点的限定条件。<Cond 阅读全文
posted @ 2012-08-18 09:33 星辰日月00 阅读(270) 评论(0) 推荐(0) 编辑

2012年8月12日

摘要: 特别要注意一下:如果是窗体的KeyDown等事件时,记住KeyPreview要设为True。vk_Return #13 回车vk_Pause = $13; vk_Capital = $14; vk_Escape = $1B; vk_Space = $20; vk_Prior = $21; vk_Next = $22; vk_End = $23; vk_Home = $24; vk_Left = $25; vk_Up = $26; vk_Right = $27; vk_Down = $28; vk_Select = $29; vk_Print = $2A; vk_Execute = $2B; v 阅读全文
posted @ 2012-08-12 16:04 星辰日月00 阅读(786) 评论(0) 推荐(0) 编辑

2012年7月10日

摘要: 三层架构,数据层(DAL)、逻辑层(BLL)、表示层(UI);三层结构的优点分层式结构究竟其优势何在?Martin Fowler在《Patterns of Enterprise Application Architecture》一书中给出了答案:1、开发人员可以只关注整个结构中的其中某一层;2、可以很容易的用新的实现来替换原有层次的实现;3、可以降低层与层之间的依赖;4、有利于标准化;5、利于各层逻辑的复用。概括来说,分层式设计可以达至如下目的:分散关注、松散耦合、逻辑复用、标准定义。一个好的分层式结构,可以使得开发人员的分工更加明确。一旦定义好各层次之间的接口,负责不同逻辑设计的开发人员就可 阅读全文
posted @ 2012-07-10 10:36 星辰日月00 阅读(383) 评论(0) 推荐(0) 编辑

2012年7月7日

摘要: 为什么我们点击按钮,就会执行按钮的onclick事件?这个事件是怎么和我们自己的代码关联起来的。相信很多人都有这个疑问。那么我们就通过一个自定义事件来了解这里面得运行原理。以乘法运算来显示,如果乘数大于100,就提示用户,太大了。这个事件用自定义事件定义。 大家先看一下最终效果,我添加了三个文本框,一个按钮,当第一或者第二个文本框的数>100时,点求积按钮,提示Too Big 对话框。完成自定义事件需要5步来做:1.定义TNotifyEvent类型私有变量1 FTooBig:TNotifyEvent;FTooBig是一个指针,它可以保持事件方法的调用地址。2.公布一个属性1 publis 阅读全文
posted @ 2012-07-07 09:12 星辰日月00 阅读(356) 评论(0) 推荐(0) 编辑

摘要: 消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg, 它在Windows单元中是这样声明的: 1 type 2 TMsg = packed record hwnd: HWND; / /窗口句柄 3 message: UINT; / /消息常量标识符 4 wParam: WPARAM ; // 3... 阅读全文
posted @ 2012-07-07 09:07 星辰日月00 阅读(303) 评论(0) 推荐(0) 编辑

摘要: Windows消息机制和Delphi的事件驱动机制11月30日于河北邯郸 转载:http://blog.163.com/muhx1981@126/blog/static/81459489200610305170213/一直以来都弄不清楚Delphi的事件驱动机制,今天看Delphi源代码,似乎有些明白了。问题:用鼠标单击按钮,为什么能执行我写的代码?环境:创建一个工程并保存,窗体上放置一个Button,在Button上双击鼠标左键,在Button1Click中写入一行代码,保存,所有控件的名字都保持默认的命名。现象:1.在Unit1.dfm中有一行语句OnClick=Button1Click2 阅读全文
posted @ 2012-07-07 09:02 星辰日月00 阅读(723) 评论(0) 推荐(0) 编辑

2012年6月25日

摘要: 如何用Delphi创建快捷方式如果我们编写的程序能自动创建快捷方式,将大大方便用户的使用。但是如何在程序中建立快捷方式呢,下面我们给出一个实例。 由于我们是通过OLE Interface实现此功能的,因此在程序单元的us es语句中要加入ComObj、ActiveX和ShlObj这三个单元。如果不行,再加shellapi单元.在单元的声明部分加入以下代码:以下是引用片段: 1 procedure CreateLink(ProgramPath, ProgramArg, LinkPath, Descr: String); 2 var 3 AnObj: IUnknown; 4 ShellL... 阅读全文
posted @ 2012-06-25 11:22 星辰日月00 阅读(2577) 评论(0) 推荐(0) 编辑