
Delphi
文章平均质量分 56
wbryfl
这个作者很懒,什么都没留下…
展开
-
Delphi截获webbrowser中关闭及右键消息处理一例
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);varsetINI: Tinifile;oldPoint, newPoint: TPOINT;begin if Msg.message = WM_CLOSE then {//判断是否关闭消息} begin原创 2016-06-15 21:12:40 · 1138 阅读 · 0 评论 -
如何把程序钉到Windows7任务栏
转自:http://blog.youkuaiyun.com/ccrun/article/details/6906471在优快云论坛看到有网友提问如何把程序钉到Windows7的任务栏,ccrun(妖哥)对这个问题很感兴趣,于是google了一下,没有找到相关的API资料,但是在国外的一个站点看到用FolderItemVerb对象来实现的方法,关于具体的资料,可以查阅MSDN:http://m转载 2011-11-03 11:06:32 · 1191 阅读 · 0 评论 -
Delphi中使用私有字体
procedure TForm1.FormCreate(Sender: TObject);begin AddFontResource(PChar(ExtractFilePath(ParamStr(0)) + 'oemFont.TTF')); SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);end;procedure原创 2011-10-25 17:08:03 · 1501 阅读 · 0 评论 -
Delphi获取硬盘ID
//获得硬盘序列号function GetHDID: pchar;const IDENTIFY_BUFFER_SIZE = 512;type TIDERegs = packed record bFeaturesReg: BYTE; // Used for specifying SMART "commands". bSectorCountReg: BYTE; /原创 2011-06-12 23:23:00 · 3122 阅读 · 0 评论 -
Delphi获取Mac地址方法
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, WinSock;const MAX_HOSTNAME_LEN = 128; { from IPTYPES.H }原创 2011-06-12 21:13:00 · 3341 阅读 · 0 评论 -
实现TreeView结点拖拽的实例
下面的程序片段演示了如何实现拖拽treeview构件结点的例子 <br /><br />{鼠标按下时执行的语句} <br />procedure TForm1.Treeview1MouseDown(Sender: TObject; <br />Button: TMouseButton; Shift: TShiftState; X, Y: Integer); <br />begin <br /><br />{判断左键按下并且鼠标点在一个结点上开始实现拖拽} <br />if ( But转载 2011-03-11 23:46:00 · 857 阅读 · 0 评论 -
五步实现文件的拖放功能
<br />用过Winamp的朋友都知道,Winamp支持文件拖放,当你想欣赏某个MP3文件时,只需将文件拖到Winamp的窗口上,然后放开鼠标就行了。如何让自己的程序也实现这样的功能呢?下面就以Delphi环境中的ListBox组件为例,向大家介绍一个如何实现支持文件拖放功能的方法。<br />1.新建一个工程,在Form1中添加一个Listbox控件和一个Label控件,分别为Listbox1和Label1。<br />2.本文主要使用到两个Windows API 函数:DragAcce转载 2011-03-11 23:19:00 · 989 阅读 · 0 评论 -
UltraEdit支持Delphi语法高亮显示的设定
<br />将以下内容添加到UltraEdit安装路径下的 WORDFILE.TXT 文件的结尾即可,注意:/L9数值根据自己的实际更改一下。<br /><br />/L9"Dephi" Line Comment = // Block Comment On = { Block Comment Off = } Block Comment On Alt = (* Block Comment Off Alt = *) Escape Char = / String Chars = ' Nocase Fi转载 2011-03-13 13:14:00 · 1374 阅读 · 0 评论 -
Delphi编译后的程序图标无法修改一例
<br />编译一个工程时,生成的程序图标始终不变,在Project-Option里设定好了,甚至Form里也用了指定的图标,但编译出来仍是默认的,解决办法:<br />修改工程文件中的{$R *.res}为{$R <ProjectName>.res}即可。原创 2011-03-02 20:47:00 · 5889 阅读 · 3 评论 -
Delphi中使用API将目录删除函数
<br />以往删除目录时,都是用递归删干净目录下的文件和子文件夹,如果文件数量大,则删除速度会很慢<br />在此直接使用使用API将目录删除<br /><br />function DelDirectory(const Source: string): boolean;<br />var<br /> fo: TSHFILEOPSTRUCT;<br />begin<br /> FillChar(fo, SizeOf(fo), 0);<br /> with fo原创 2011-03-02 00:10:00 · 786 阅读 · 0 评论 -
一名Delphi程序员的开发习惯
有关开发习惯的一些想法,如鲠在喉,不吐不快。究其发贴动机,当然不排除有骗取参与分的可能,但另一方面,也希望能给同行(念Xing)者提供一些建议,或者参考(希望不是误人子弟)。同时,也希望各位能够就我的这些陋习,发表一点看法,给出批评和指正的意见。谢谢。一.建立工程目录 首先,第一步要做的,当然是给新项目建一个单独的目录(别笑)。目录名称与项目名称同名,或者另取一个也可,转载 2010-04-29 19:05:00 · 838 阅读 · 0 评论 -
API函数集
1.控件与消息函数 AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在任何弹出式窗口 ArrangeIconicWindows 排列一个父窗口的最小化子窗口 AttachThreadInput 连接线程输入函数 BeginDeferWindowPos 启动构建一系列新窗口位置的过程 BringWindowToTop 将指定转载 2010-03-03 22:20:00 · 580 阅读 · 0 评论 -
利用RegisterWindowMessage在不同程序窗体间传递消息
功能:程序间传递消息,获得屏幕图形。代码如下,同时运行这两个程序,在form1中按下按纽,则在form2中会出现form1的图形。 Form1代码: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Control转载 2010-02-10 15:12:00 · 866 阅读 · 0 评论 -
CreateProcess启动进程示例
//变量声明 sInfo: TStartupInfo; pInfo: TProcessInformation; cmdLine: string; exitCode: Cardinal; //执行代码 cmdLine := regsvr32.exe /s Loader.DLL; FillChar(sInfo, sizeof(sInfo), #0); sInfo.c原创 2010-02-03 09:27:00 · 1336 阅读 · 0 评论 -
分析操作系统版本的函数
Function GetWindowsVersion: String; var AWin32Version: Extended; os:string;begin os:=Windows ; AWin32Version := StrtoFloat(format(%d.%d ,[Win32MajorVersion, Win32MinorVersio原创 2010-02-04 10:50:00 · 618 阅读 · 0 评论 -
判断某个进程是否存在
unit Unit1;interfaceuses Windows,TLHelp32, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) procedure FormCreate(Sender:转载 2010-02-05 23:58:00 · 1627 阅读 · 0 评论 -
delphi获得网卡的MAC地址
获得网卡的MAC地址在很多地方都有很大的用处,下面的函数以XX-XX-XX-XX-XX-XX 的格式返回远程或本地机器的MAC地址。Function to return the MAC address of a remote or local machine in the format XX-XX-XX-XX-XX-XX 返回的MAC地址是一个能用在多个方面的唯一标转载 2009-11-16 09:10:00 · 1285 阅读 · 0 评论 -
Runtime error 216 at xxx 故障解决一例
故障现象:部分Delphi项目在win7开发机上不能运行了,提示Runtime error 216 at xxx错误信息,但是将出错的EXE文件复制到别的win7和xp下,均运行正常。解决办法:之前安装某软件时,将DEP对普通应用程序开启了,关闭DEP或将应用程序添加到例外问题解决。总结:起初遇到此问题时,想当然地以为是Visual C++ Runtime库有问题,重装2005、2008和原创 2012-03-03 00:29:23 · 35526 阅读 · 0 评论 -
ubuntu下安装Lazarus
FreePasal下载:http://www.freepascal.org/Lazarus下载:http://sourceforge.net/projects/lazarus/files/首先,登录上边两个地址,下载FreePascal和Lazarus的ubuntu版本,最新版为fpc-2.6.0-1.i386.deb.tar和lazarus-0.9.30.4.i386.deb.tar原创 2012-05-08 10:07:18 · 4050 阅读 · 1 评论 -
delphi7模拟鼠标移动和单击功能
oldPoint,newPoint:TPOINT GetCursorPos(oldPoint); //保存当前鼠标位置。 newPoint.x = oldPoint.x+40; newPoint.y = oldPoint.y+10; SetCursorPos(newPoint.x,newPoint.y); //设置目的地位置。原创 2016-05-14 17:47:57 · 7110 阅读 · 0 评论 -
delphi中Webbrowser
1.获得网页中变量值 htm中 var currID=123 程序中可以这么调用 id := Form1.WebBrowser1.OleObject.Document.script.currID 值得说明的是,变量可以是javascript定义的,也可以是vbscript定义的,如果Webbrowser1中找不到该变量,调用会触发一个异常事件,即变量currID转载 2015-05-08 20:16:08 · 590 阅读 · 0 评论 -
Delphi向Ini文件中写入流数据
Delphi中使用Ini文件是非常方便的,很简单的就可以操作一个Ini文件。但是也存在着局限性,比如TIniFile的ReadString函数最大只能读2047个字符,超过了的则读不出来,鉴于这个,很容易的修改,可以找到其ReadString函数,扩大其缓冲区则可。同时还有一点不足之处就是,不能写入流。写入流有的时候,用处也是非常大的了。但是Ini文件却没有提供该函数,进日由于工作中需要用到这样的转载 2014-12-07 11:01:19 · 2465 阅读 · 0 评论 -
Generate a random password
function RandomPassword(PasswordLength: Integer): string;var str: string;begin Randomize; str := 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; Result := ''; r原创 2014-12-07 11:56:27 · 701 阅读 · 0 评论 -
uniGUI 0.93在Delphi XE4下的安装问题
好不容易找到了uniGUI的0.93版本,据说已经有0.94版了,可惜,官网上居然只有0.原创 2014-08-12 23:03:06 · 2072 阅读 · 0 评论 -
Delphi_捕获TWebBrowser的Close事件
Delphi使用TWebBrowser控件开发自己的浏览器,如果访问的网页有关闭窗口的JavaScript代码,那么TWebBrowser控件被注销,但应用程序本身并没有关闭,这似乎不是软件开发者乐意看到的。下面的示例介绍了一种捕获网页被关闭的消息的方法:1. 首先在应用程序窗体上添加一个TApplicationEvents控件(在Additional页上)2. 编写该控件的OnMessa转载 2013-12-04 23:51:54 · 1673 阅读 · 0 评论 -
Delphi_判断Webbrowser打开的网页组件是否存在?
原文来自:http://blog.youkuaiyun.com/pengxuan/article/details/8684994html> head> meta http-equiv="Content-Type" content="text/html; charset=gb2312"> title>新建网页 1title> script> function aa(){转载 2013-12-04 22:52:58 · 2221 阅读 · 0 评论 -
Delphi_WebBrowser禁止弹出Alert对话框
Webbrowser1的OnDocumentComplete事件响应代码可以拦截网页Alert弹出的对话框,代码:procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);begin ((Sender as TWebBrows转载 2013-12-02 20:07:35 · 5144 阅读 · 0 评论 -
Delphi_Webbrowser中自动点击Alert弹出窗口中的按钮
function CallBackProc(H, HMainForm: hwnd): Boolean; stdcall;var hChild: hwnd;begin Result := True; if GetParent(H) = HMainForm then begin hChild := FindWindowEx(H, 0, PChar('Button'原创 2013-12-02 20:00:44 · 3881 阅读 · 1 评论 -
Delphi WebBrowser始终在当前窗口打开新网页
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject; var PpDisp: IDispatch; var Cancel: WordBool);begin PpDisp := WebBrowser2.Application;end;procedure TForm1.WebBrowser2BeforeNavigat原创 2013-12-02 19:36:32 · 7958 阅读 · 1 评论 -
Delphi_EnumWindows 的一个例子
*********************************************************************************EnumWindows 的功能是遍历所有顶层窗口 function EnumWindows( lpEnumFunc: TFNWndEnumProc; {回调函数指针} lParam: LPARAM转载 2013-12-06 22:35:30 · 2556 阅读 · 0 评论 -
delphi DateUtils功能详解
CompareDate 比较两个日期时间值日期部分的大小CompareDateTime 比较两个日期时间值的大小CompareTime 比较两个日期时间值时间部分的大小DateOf 去除日期时间值的时间部分DateTimeToJulianDate 转换日期时间值为儒略日DateTimeToModifiedJulianDate 转换日期时间值为改进的儒略日DateTi原创 2013-04-03 22:25:11 · 8514 阅读 · 0 评论 -
Delphi中idHttp获取网页源文件
procedure TForm1.Button1Click(Sender: TObject);var pageStr: string;begin with IdHTTP1.Request do begin IdHTTP1.HandleRedirects := true; //使用Idhttp.Post时,出现 HTTP/1.1 302 FOUND 错误,地址自动转向。原创 2013-04-04 21:56:28 · 3421 阅读 · 0 评论 -
DBISAM故障一例
描述:程序启动时,出现Runtime error 216 at xxxx之类的错误信息,开始以为是个例,跟踪代码才发现,从第一句就报错,因为之前程序是可以正常运行的,所以问题明显与代码无关,排查确定问题出在DBISAM,测试结果发现,只有一个DBISAM组件,程序也报错,Google后发现无此案例,排查结果与Windows的数据保护视图开启有关,关闭问题解决。Windows中关于DEP的描述:原创 2012-05-22 20:01:00 · 1106 阅读 · 0 评论 -
ubuntu下为lazarus添加sqlite3开发环境
1 在终端中运行:sudo apt-get install sqlite3 libsqlite3-dev2 将/usr/lib/lazarus/0.9.30.4/components/sqlite/目录中的文件复制到/usr/lib/lazarus/0.9.30.4/ide/目录中。注意:需要root权限,从终端中用sudo cp 命令复制。3 启动lazarusPacka原创 2012-05-13 01:10:28 · 1311 阅读 · 0 评论 -
关于 Beep、MessageBeep 和 Windows.Beep
Delphi 在 SysUtils 单元定义 Beep 方法, 可以发出一个声音, 一般用于提醒和调试.Beep 其实是调用的 API 函数: MessageBeep(MB_OK); MessageBeep 有下面几种用法可以调用几种不同的声音文件:MessageBeep(MB_OK);MessageBeep(MB_ICONHAND);MessageBeep(MB_ICONQ转载 2009-11-16 09:02:00 · 1749 阅读 · 0 评论 -
unicode与GB2312转换等Delphi函数
{ 函数 : RESULTSTRING = HexToBin(HEXSTRING){ 目的 : 把十六进制字符串转换为二进制字符串{{===============================================================}{ 函数 : RESULTINTEGER = HexCharToInt(HEXCHAR){ 目的 : 转换转载 2009-09-11 23:55:00 · 3335 阅读 · 0 评论 -
画反走样线的函数
procedure AALine(x1,y1,x2,y2 : single; color : tcolor; canvas : tcanvas);function CrossFadeColor(FromColor,ToColor : TColor; Rate : Single) : TColor; var r,g,b : byte; begin r:=Round(GetRValue(FromC转载 2006-08-26 19:59:00 · 1253 阅读 · 0 评论 -
国际化编程的注意点
国际化编程的注意点 天气: 时间:2005-04-18 15:23:32转载 2006-12-19 18:54:00 · 2295 阅读 · 0 评论 -
delphi编程实现检测声卡存在
如果你是做一些多媒体播放器之类的程序时,为了完善系统的容错性,就必须用到一些检测系统的功能,其中检测声卡是否存在就是一个问题,下列程序帮你忙,首先需要在uses部分加入mmsystem ,接着在窗体创建时检测声卡:procedure TForm1.FormCreate(Sender: TObject);var i:Integer;begini := auxGetNumDevs转载 2006-08-07 11:45:00 · 1354 阅读 · 0 评论 -
delphi编程实现播放背景音乐
如果要做一些比较艺术化的程序时,你会想到插入背景音乐,这时你是否使用了TMediaPlayer控件来播放音乐呢?其实我们大可放弃该方法,直接使用WINDOWS为 我们提供的API函数来播放音乐,方法如下:首先需要在uses部分加入mmsystem,接着写入下列语句,其中e:/1.mid为播放的文件,NN为自定义名称标志procedure TForm1.Button1Click(Sender转载 2006-08-07 10:57:00 · 2202 阅读 · 0 评论