当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 有不少人讨论过显示系统键(CapsLock、NumLock、Insert、ScrollLock等)状态的问题,用得最多的方法是添加一个Timer,在事件中刷新系统键状态显示;另一个方法是做一个系统HOOK,在HOOK中刷新显示。
 

 

 ·dephi发布时免安装环境    »显示摘要«
    摘要: 以往的程序一般先进行打包,然后在用户机器上这行安装过程。 在这篇文章里,介绍怎样将dephi编译的程序直接复制(copy)到用户的机器上就能运行,这也是智能客户端特点之一。 1.如何将程序用到的类库编译到可执行文件中? 选择菜单project\options,选择packages标签,不选择“build with runtime packages”复选框。这种设置可......
    摘要: 利用setwindowshookex(wh_mouse?,mousehookhandler,hinstance,0)捕捉鼠标信息,其中mousehookhandler的格式如下: lresult callback mouseproc( ??? int ncode,?// hook code??? wparam wparam,?// message identifier??? lparam l......


以最少的资源耗用,显示系统键状态

  有不少人讨论过显示系统键(capslock.numlock.insert.scrolllock等)状态的问题,用得最多的方法是添加一个timer,在事件中刷新系统键状态显示;另一个方法是做一个系统hook,在hook中刷新显示.这两种方式都会严重占用系统资源,第一种方法还存在延迟的问题.现在介绍第三种方法:

  下面给出实现代码: 【程序编程相关:在DELPHI中利用ADO组件访问数据库

  键盘按钮被按下时系统会发送wm_keydown.wm_char.wm_keyup消息给当前的激活应用程序,消息的wparam是键盘扫描码,这样我们就可以知道按键是否被按下或释放,在这里面刷新按键状态显示是最佳的时候.不过这里还有一个问题,应用程序在非激活状态时是收不到以上消息的,因此需要在程序被激活时检测并刷新状态显示. 【推荐阅读:IndySSL-usingcertifi

interface 【扩展信息:ShadowStarCodeFast下载

unit unit1;

uses

  windows, messages, sysutils, variants, classes, graphics, controls, forms,

  dialogs, comctrls;

type

  tform1 = class(tform)

    statusbar1: tstatusbar;

    procedure formcreate(sender: tobject);

  private

    procedure appactivate(sender: tobject);

    procedure apponmsg(var msg: tagmsg; var handled: boolean);

    procedure showkeystate; //显示系统按键状态

  end;

var

  form1: tform1;

implementation

{$r *.dfm}

procedure tform1.formcreate(sender: tobject);

begin

    //显示系统键状态,指定事件代理

    showkeystate;

    application.onmessage := apponmsg;

    application.onactivate := appactivate;

end;

procedure tform1.appactivate(sender: tobject);

begin


...   下一页
 ·用delphi实现对象持久层(-)    »显示摘要«
    摘要: 译者按:  这篇文章来自于www.techinsite.com.au,是有关delphi如何建立对象持久层的一篇文章,本人英文很烂,翻译出来只为自己研究用,请勿见笑。 介绍   众所周知,delphi可以快速开发一个数据库应用程序,然而,因为数据连接组件拖曳到应用程序中,使得你更接近组件的 api。 藉由每个数据感应控件,实现你自己一个特定的数据库模式。  对此的替代方案是实现你自己的持久层......
» 本期热门文章:

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