随笔分类 -  软件开发:Delphi

上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页
摘要:Find out how you can include the manifest into a Delphi project to allow your application to share the same look and feel of Windows XP.More of this Feature•Download Demo ProjectJoin the Discussion"Post your questions, concerns, views and comments to this article..." Discuss!Related Resour 阅读全文
posted @ 2013-07-23 11:15 Max Woods 阅读(514) 评论(0) 推荐(0)
摘要:DescriptionThis example illustrates the basic operations on an XML document.Codeprocedure CreateDocument;const CFilename = 'file.xml';var LDocument: IXMLDocument; LNodeElement, NodeCData, NodeText: IXMLNode;begin LDocument := TXMLDocument.Create(nil); LDocument.Active := True; { Define docum 阅读全文
posted @ 2013-07-09 09:51 Max Woods 阅读(465) 评论(0) 推荐(0)
摘要:Delphi中,除了应用程序主窗口会显示在任务栏上,其它窗口默认都不会显示在任务栏. Delphi中,除了应用程序主窗口会显示在任务栏上,其它窗口默认都不会显示在任务栏.没有MS开发环境中的ShowInTaskBar属性.解决办法:1.重载窗口 CreateParams 方法以实现,ShowInTaskBar效果 procedure CreateParams(var Params: TCreateParams);override; procedure Tform1.CreateParams(var Params:TCreateParams); begin inherited CreatePar 阅读全文
posted @ 2013-07-04 17:33 Max Woods 阅读(1991) 评论(0) 推荐(0)
摘要:刚才看到了这篇东西《使窗口不在任务栏上显示(利用ITaskbarList接口)》,作者用ITaskList接口实现了隐藏窗口在任务栏按钮的功能,想起我好多年以前做的程序也有这样的功能,但是绝不是用这些接口之类的做的,只是一个API函数就搞定了(好像是SetWindowLong()中传个什么参数吧,真的想不起来了),可惜程序实在是找不到了,当然ITaskbarList的功能要稍许比以前的那个API强一些。觉得挺好玩,就用Delphi重新实现了一遍,把代码贴出来,以便今后做什么程序的时候还可以用。uses ..., ActiveX;type ITaskbarList = interface(IUn 阅读全文
posted @ 2013-07-04 17:25 Max Woods 阅读(931) 评论(0) 推荐(0)
摘要:{$IF CompilerVersion >= 21.0}{$WEAKLINKRTTI ON}{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}{$IFEND} 阅读全文
posted @ 2013-06-26 14:46 Max Woods 阅读(416) 评论(0) 推荐(0)
摘要:一直有人问如何在DirectX全屏游戏中弹出窗口就象金山游侠一样.我答应过要给出原码,只是一直没有时间整理,不过现在总算是弄玩了.代码不长,大致作了些注释,但愿你能看懂:)按照我的说明一步步作应该就能成功,但有时可能不行,为什么?我也不知道,或许是你哪一步做错了,或者是Delphi的问题?天知道,但大多数时候按照我给出的步骤,这些代码应该能实现我们的目标.下面的代码经过了一定的测试,但并没有刻意设计保证程序兼容性和稳定性的代码,所以不能保证在所有的机器上正常运行.如果死机或者花屏了,那么很不幸它不适合你,在找些别人写的类似的代码吧(不过以前有人公开过类似的代码吗?如果有请mail给我:)试一试 阅读全文
posted @ 2013-06-23 20:51 Max Woods 阅读(693) 评论(0) 推荐(0)
摘要:可以截取layered窗口(包括透明窗口)的代码:procedure CaptureScreen(AFileName: string);const CAPTUREBLT = $40000000;var hdcScreen: HDC; hdcCompatible: HDC; bmp: TBitmap; hbmScreen: HBITMAP;begin hdcScreen := CreateDC('DISPLAY', nil, nil, nil); hdcCompatible := CreateCompatibleDC(hdcScreen); hbmScreen := Create 阅读全文
posted @ 2013-06-18 15:33 Max Woods 阅读(2650) 评论(0) 推荐(0)
摘要:昨天晚上,有个朋友告诉我他想屏蔽掉键盘的WIN键,问我有没有简单的办法,回来就做了一个简单的示例。这个示例中使用到一个低级的键盘钩子,它是从windows2000引进的,所以必须在win2000以上的版本才被支持,而且关于低级键盘钩子的部分在delphi中并没有引入。所以对照C语言的资料将它转换为delphi语言的格式,下面是使用delphi格式声明的一个常量和一个数据结构:const WH_KEYBOARD_LL = 13;typePBDLLHOOKSTRUCT = ^TBDLLHOOKSTRUCT;TBDLLHOOKSTRUCT = recordvkCode: DWORD;scanCode 阅读全文
posted @ 2013-06-15 02:33 Max Woods 阅读(1207) 评论(0) 推荐(0)
摘要:这个Delphi单元主要是把键盘按键保存在堆栈线性队列中,可以在软件界面自己查看按键内容,同时还保存了按键信息在c:\logfiles.txt的文本文件中,方便以后的查看。。。安装全局钩子函数 KeyLogHook := SetWindowsHookEx(WH_jOURNALRECORD,KeyLogProc,HInstance,0);卸载钩子函数是 UnhookWindowsHookEx(KeyLogHook); 使用过程中好像有点问题,软件开机自启动的时候,会让Lingoes的启动无法正常启动,提示内存访问错误什么的,有时候莫名其妙钩子会失效,截获不了键盘按键,可能用dll的好点吧。。.. 阅读全文
posted @ 2013-06-15 02:28 Max Woods 阅读(790) 评论(0) 推荐(0)
摘要:小读了一下《Delphi下深入Windows核心编程》感觉里面的东西写得还算可以,至少有学到东西于是整理了一下书中的代码,并加上注注释发上来首先是最重要的键盘钩子使用的DLL:unit UnitDll;interfaceuses Windows;const BUFFER_SIZE = 16 * 1024; // 文件映射到内存的大小const HOOK_MEM_FILENAME = 'MEM_FILE'; // 映像文件名const HOOK_MUTEX_NAME = 'MUTEX_NAME'; // 互斥名type // 共享结构 TShared = reco 阅读全文
posted @ 2013-06-15 02:26 Max Woods 阅读(1586) 评论(0) 推荐(0)
摘要:全局热键的意思是指,当程序并不是当前窗口的时候,按下热键也可以响应。以前做这种功能用过一种方法,是编写一个键盘钩子的DLL,过滤系统中所有的键盘消息,当然还要再写一个程序去调用它。这种方法做起来麻烦了一起,不过倒是黑客窃取键盘密码雏形。这里介绍的方法是利用windows api直接注册热键,分三步走:1、增加一个全局Atom2、为Atom注册一个全局热键(这样相应的键盘消息就会分配给本程序了)3、写相应的HotKey响应处理代码再进一步,如果需要让用户自定义热键,就需要在界面上放一个标准的THotKey控件,这个控件允许用户自己输入热键,不过它的输出是TShortCut,在Menus单元中有几 阅读全文
posted @ 2013-06-15 01:52 Max Woods 阅读(2532) 评论(0) 推荐(0)
摘要:四、BitmapData.pas的使用(注:以上压缩包中的BitmapData.pas文件有个小BGU,主要是截取鼠标指针的图片时没有考虑当前的背景颜色,始终为黑色。在本贴三楼的压缩包中有更新后的BitmapData.pas文件下载。) 在上面的压缩包中是BitmapData.pas使用的示范程序,BitmapData.pas文件可以从压缩包中获得。在BitmapData.pas文件中我将位图数据封装成了类TBDBitmapData,以便于使用。另外我编写一系列的函数用以BGR格式颜色的构建、转换、模糊比较。注意在BitmapData.pas文件中我定义了一些常量,这些常量只是为了增加程序的. 阅读全文
posted @ 2013-06-14 12:11 Max Woods 阅读(1918) 评论(0) 推荐(0)
摘要:三、找图找色 结合本文第一节和第二节的内容设计一个找图找色的程序应该不是问题。对于一个位图可以看成是由象素组成的矩阵,Top相当于y,Left相当于x,利用(Top,Left)可以象访问矩阵元素一样访问位图上的象素。查找过程就是对位图象素的遍历。相关的代码在BitmapData.pas文件中都有,这里就不重复了。在BitmapData.pas文件中我实现的查找过程主要还是一对一的比对,这是一种较慢的匹配算法。对于一些字符串匹配算法,在查找过程中可以在匹配失败时跳过一些字符从而加快查找的速度。在矩阵查找中也有类似的算法,但我没有找到比较好的算法,所以在实现上还是采用了一对一的比对。这就意味着查. 阅读全文
posted @ 2013-06-14 12:05 Max Woods 阅读(1441) 评论(0) 推荐(0)
摘要:二、矩阵遍历 矩阵遍历是一个数据结构方面的问题。假设有一个矩阵Matrix,它共有RowCount行,每行有ColCount列,当利用y表示行数,x表示列数,那么利用Matrix[y,x]就可以访问矩阵中的任意元素。假设有一个10×10大小的矩阵,它的遍历方法有以下三种:此主题相关图片如下:(图1)在上图中矩阵中的数字表示遍历到元素的先后次序,箭头表示遍历的方向。第一种的一般遍历法在很多编程书上都有介绍,而且经常作为循环代码的示范程序使用。这种遍历方法稍加修改就可以做到从右上角开始、从左下角开始、从右下角开始。这种遍历方法很简单,这里就不多说了。与一般遍历相反,螺旋遍历在所有的编程书 阅读全文
posted @ 2013-06-14 12:03 Max Woods 阅读(1060) 评论(0) 推荐(0)
摘要:前言 最近有好几个朋友都在问我找图找色的问题,奇怪?于是乎写了一个专门用于找图找色的单元文件“BitmapData.pas”。在这个单元文件中我实现了从文件中导入位图、屏幕截图、鼠标指针截图、在图片上查找子图、在图片上查找颜色等功能。在查找过程中可以设定颜色变化范围、可以从左到右从上到下查找、也可以从指定点向四周查找。关于这个文件的下载和使用,可以参考本文的第四节。下面详细说说这些功能的实现。一、数据提取 位图其实可以看成是一个由象素组成的矩阵,找图找色可以看成是象素值的比对。很多新手在设计这类的程序时喜欢使用TBitmap.Canvas.Pixels属性,这个属性其实是对API函数Get.. 阅读全文
posted @ 2013-06-14 12:02 Max Woods 阅读(1579) 评论(0) 推荐(0)
摘要:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;typeTest=record a: Integer; b: Integer; end; TForm1 = class(TForm) btn1: TButton; memo1: TMemo; procedure btn1Click(Sender: TObject); private { Private declara... 阅读全文
posted @ 2013-06-13 14:39 Max Woods 阅读(1394) 评论(0) 推荐(0)
摘要:delphi语言在传统的Records类型的基础上增加了许多像类一样的高级功能,如:Records可以有属性和方法(包括构造constructors),类属性,类方法,类静态字段和内嵌类型。下面这个示例演示定义一个功能像类一样的Records:typeTMyRecord = recordtypeTInnerColorType = Integer;varRed: Integer;class varBlue: Integer;procedure printRed();constructor Create(val: Integer);property RedProperty: TInnerColor 阅读全文
posted @ 2013-06-11 09:13 Max Woods 阅读(418) 评论(0) 推荐(0)
摘要:本文转自http://hi.baidu.com/homejun/blog/item/3cd2cd1b6c60f4faaf5133d0.htmldelphi2006语言新特性——类静态字段、类属性类静态字段 Class Fields(直译应为类字段,为避免混淆,本文统称类静态字段)类静态字段是类的一种特殊字段,它可以在类没有实例化时访问(普通的实例字段必须在类实例化后才能访问)。类静态字段储存的值可以被所有实例共享。(很有意思,赋一下值,所有类,实例都会改变,感觉很有用)你可以用关键字class var在类的声明部分定义一个类静态字段块,所有在class var 以后定义的字段都是静态存储的。当 阅读全文
posted @ 2013-06-11 08:59 Max Woods 阅读(259) 评论(0) 推荐(0)
摘要:由于本机系统不准确,所以决定从Internet 获取来校正系统,说干就干。程序设计步骤1、新建一个工程;2、在窗体上放一个TEdit控件和一个TClientSocket(在Internet页下)控件。TEdit用来显示取得的格林尼治转化成北京后的,TClientSocket用来从Internet 获取的格林尼治;3、程序代码procedure TForm1.FormCreate(Sender: TObject);beginClientSocket1.Host :=‘tick.usno.navy.mil‘;// 美国海军天文台;ClientSocket1.Port :=13;ClientSock 阅读全文
posted @ 2013-06-05 17:11 Max Woods 阅读(643) 评论(0) 推荐(0)
摘要:前言 最近有好几个朋友都在问我找图找色的问题,奇怪?于是乎写了一个专门用于找图找色的单元文件“BitmapData.pas”。在这个单元文件中我实现了从文件中导入位图、屏幕截图、鼠标指针截图、在图片上查找子图、在图片上查找颜色等功能。在查找过程中可以设定颜色变化范围、可以从左到右从上到下查找、也可以从指定点向四周查找。关于这个文件的下载和使用,可以参考本文的第四节。下面详细说说这些功能的实现。一、数据提取 位图其实可以看成是一个由象素组成的矩阵,找图找色可以看成是象素值的比对。很多新手在设计这类的程序时喜欢使用TBitmap.Canvas.Pixels属性,这个属性其实是对API函数Get.. 阅读全文
posted @ 2013-05-29 16:49 Max Woods 阅读(708) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页