
Delphi编程
文章平均质量分 93
弘石
山上有两个程序员
展开
-
如何去掉delphi2006、2007、BCB2007的欢迎界面(welcome page)
只要删除注册表中相应的项目就行了 产品注册表项BDS 2006 / C++Builder 2006 / Delphi 2006HKEY_CURRENT_USER/Software/Borland/BDS/4.0/Known IDE PackagesCodeGear RAD Studio / C++Builder 2007 / Delph转载 2009-12-09 10:49:00 · 2421 阅读 · 0 评论 -
delphi中WebBrowser的parent改变时变成空白问题的解决
这段时间在做一个delphi界面打开网页的功能,且此网页所在窗口可完整显示,可缩小到另一个窗口的panel上显示可是在改变网页所在窗口时,WebBrowser控件变成了空白上网google了半天,终于在csdn上查到了解决方案:原帖地址:http://bbs.youkuaiyun.com/topics/200046109uses SHDocVw, Windows, Controls,原创 2012-12-29 15:39:14 · 2020 阅读 · 0 评论 -
修改window.external使JS可调用Delphi方法
原文地址:http://hi.baidu.com/rarnu/blog/item/4ec80608022766d663d986ea.html在JS中,有一个比较特殊的对象,即window.external,用它可以调用浏览器提供的外部方法一个很简单的例子就是将当前页添加到收藏夹window.external.addFavorite("http://blog.youkuaiyun.com/youth转载 2012-12-28 09:49:40 · 3324 阅读 · 0 评论 -
delphi 实现文件http上传下载
unit UpDownFile;interfaceuses Windows, Classes, Idhttp, URLMon, IdMultipartFormData;const UpUrl = 'http://127.0.0.1/upfile/upfile.asp';const UpFileName = 'C:/Documents and Settings/Admini转载 2012-05-03 05:14:35 · 10213 阅读 · 0 评论 -
delphi 对int64计算的一种处理方式
最近写刻录程序时用到了int64计算比例的功能,integer的范围是4G,而普通DVD光盘容量就是4.3G,直接计算是通不过编译的因此用了一种取巧的方法,把两个数据右移16位,然后计算比例,当数据小于2的16次方(64k,接近VCD容量的万分之一)时,当作最小进度(如1%)处理代码如下:function GetProgress: Integer;var nReadSize, n原创 2013-03-30 18:15:44 · 3880 阅读 · 1 评论 -
如何从javascript直接调用word插件
前些天研究了使用word插件实现一些业务逻辑的方式,需要javascript里直接调用word插件上网查了好长时间都没找到,后来是一位同事查到了解决方法,在这里分享给大家1、在word插件的onConnection事件里设置插件对象的object属性,我是用delphi写的procedure TWordTest.OnConnection(const Application: I原创 2013-03-18 15:57:05 · 5086 阅读 · 0 评论 -
Delphi多线程下的ADO编程
前言:几个月前接到一个任务:将一后台程序访问数据库的方式从BDE改为ADO,原因是由于业务量的增加,通过BDE不论是向数据库写入数据还是从数据库中读出数据的速度都变得无法忍受,大家都知道ADO在数据库访问速度方面比BDE要快的多了(我写了一个测试程序使用ADO比使用BDE快了近100倍!)。这个任务还不简单嘛,只要将BDE的控件更换成ADO的再修改一些代码不就搞定了!我当时确实是这么想的,而且转载 2013-05-06 16:13:27 · 4998 阅读 · 0 评论 -
delphi2009(10,xe)下indy10发送utf8字符串
最近实现一个功能,使用delphi2009以TCP调用java端的接口,接口要求先发送字符串的长度,然后再发送字符串内容,并且字符串要求是utf8格式的调试了好长时间,才终于发现解决办法,或者说发现问题所在我用了utf8encode方法,然后调用一个函数,在这个函数中将字符串转换为tidbytes后发送(前面的数据是结构体),这个函数的参数类型是string类型的,结果总是不成功后原创 2013-03-30 18:04:26 · 5528 阅读 · 2 评论 -
Delphi 7下使用Log4Delphi 0.8日志组件
Log4Delphi是一个开放源码项目,旨在制作用于Borland的Delphi高质量实用的日志套件,是基于Apache Software Foundation的log4j包。安装: 1.从http://sourceforge.net/projects/log4delphi/files/下载0.8版本,解压到文件夹。打开文件夹"...\log4delphi-0.8",转载 2012-06-06 14:58:04 · 2157 阅读 · 0 评论 -
delphi程序升级到64位
要做哪些事:1 安装delphi xe2及以上版本2 改正一些由delphi语法变化引起的错误3 升级或替换一些不能升级的控件(如有汇编而你不会写汇编)语法引起的问题:1 对汇编的支持有变化,原汇编代码一般不再可用2 in操作符有变化:char建议使用CharInSet方法3 增加了包的概念,如Spin变成Vcl.Samples.Spin,在System原创 2013-08-15 18:04:53 · 10080 阅读 · 0 评论 -
word存为txt文本、rtf格式的文件
采用OLE的方式实现word转换为文本等格式function WordToTxt( sDocFile: string ): string;var WordApp: Variant;begin WordApp := CreateOleObject( 'Word.Basic' ); if not VarIsEmpty(WordApp) then begin原创 2011-11-28 14:10:28 · 3084 阅读 · 1 评论 -
数字小写转大写
网上很多数字小写转大写的代码,大多数写得都有问题,找了个以前用过的,在2010下改了改,已测function GetCnNumber(num: Double): string;const _ChineseNumeric: AnsiString = '零一二三四五六七八九';var sIntArabic: AnsiString; PosOfDecimalPoint: inte转载 2015-06-10 10:20:02 · 1291 阅读 · 0 评论 -
delphi自动调整combobox下拉列表宽度
在combobox所在的窗口的Formshow事件里调用即可procedure SetComboBoxListWidth( AComboBox: TComboBox );var i: Integer; nMaxLen, nMinWidth: integer; nFontWidth: Integer; nCboLeft: integer; ctlCustom: TCon转载 2012-11-13 16:59:33 · 4447 阅读 · 0 评论 -
Delphi调试activex
以前好多次遇到了activex无法调试的问题,一直没搞清楚原因,最近终于搞清楚了,原来是IE由单线程变成了多线程。下面就说说调试activex的方法一、简单的方式,这种方式只适用于浏览器为单线程的情况: 在delphi的run菜单里的parameter里设置host application和parameter就可以调试了二、另一种方式,能够调试IE8这样的多进程浏览器:原创 2012-06-26 15:46:16 · 2123 阅读 · 0 评论 -
delphi中获取memo鼠标所在位置的行和列
delphi中获取memo鼠标所在位置的行和列转载 2010-08-02 10:15:00 · 4213 阅读 · 0 评论 -
[Delphi]使用MAP文件查找程序地址类错误行
delphi 根据map文件计算出内存地址错对于的代码行号转载 2010-12-10 09:53:00 · 4125 阅读 · 0 评论 -
delphi实现全局快捷键的功能
没什么复杂的,只是最近才用,跟大家分享一下 全局快捷键就是焦点不在这个系统时也管用的快捷键 1、首先需要注册快捷键 FShowkeyid := GlobalAddAtom('mykey_show'); //F12 Register原创 2011-08-24 18:17:49 · 7837 阅读 · 1 评论 -
Delphi中的线程类 - TThread详解
Delphi中的线程类 - TThread详解2011年06月27日 星期一 20:28Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute转载 2011-08-26 11:13:13 · 1427 阅读 · 0 评论 -
简单说说Delphi中线程的释放
线程的释放方式有两种:一种是线程在运行完成后自动释放,一种是手动释放。无论是那种释放,都应该在线程停止后进行释放。然而线程的停止也有两种情况:一种是不需要设置标志位,直接完成;一种是由于execute方法中做了循环,需要设置标志位才能停止。如果线程已经停止并且自动释放,再去手动停止,就会报错。下面看代码:1、自动停止后自动释放的线程:constructor TT原创 2011-08-26 14:53:29 · 12560 阅读 · 0 评论 -
Delphi中返回类型为string的函数的一个陷阱
如果类的一个成员函数的返回值是string类型,需要注意一个问题其返回值可能是错误的例如函数的实现如下function GetString( s: string ): string;begin Result := Result + s;end;调用方式如下:procedure test();var i: Integer; s: stri原创 2009-06-25 18:43:00 · 2788 阅读 · 0 评论 -
delphi杀进程的两种方式
第一种:比较简单,根据标题,找到窗口,再找到进程,杀死进程procedure KillProgram(WindowTitle : string);const PROCESS_TERMINATE = $0001;var ProcessHandle : THandle; ProcessID: Integer; TheWindow : HWND;begin TheW转载 2012-02-10 10:51:25 · 6649 阅读 · 0 评论 -
delphi备份恢复剪切板
看了季世平老兄的C++代码后翻译过来的unit clipbak;interfaceuses SysUtils, Classes, Clipbrd, Windows, Contnrs;type TClipData = class Format: WORD; Data: THANDLE; end; TClipBackuper = class原创 2012-03-07 10:31:01 · 1768 阅读 · 0 评论 -
ftp和http断点续传及下载delphi实现
接下来我们来写最主要的代码,也就是下载部分了,首先来看HTTP协议的:procedure TForm1.HttpDownLoad(aURL, aFile: string; bResume: Boolean);var tStream: TFileStream;begin //Http方式下载 if FileExists(aFile) then //如果文件已经存在转载 2012-05-03 13:33:31 · 6901 阅读 · 1 评论 -
delphi的拖拽功能实现
惭愧,编了这么多年程序,还没用过拖拽功能这次同事要实现图标互换的功能,让我帮忙看一下,于是趁机研究了一下拖拽事件,发现还是比较简单的参考了http://topic.youkuaiyun.com/u/20081015/14/98eef84c-0d2f-43a7-aa82-eef7028ef4f7.html里3150379的回答要做以下事情:1、放2个image控件(废话)2、把要拖拽原创 2011-08-09 10:50:29 · 9647 阅读 · 2 评论 -
delphi获取dll的函数列表
找了几个,终于找到一个好用的function GetDLLFileExports( szFileName: PChar; mStrings: TStrings): Boolean;var hFile: THANDLE; hFileMapping: THANDLE; lpFileBase: Pointer; pImg_DOS_Header: PIm原创 2012-06-15 15:46:01 · 3245 阅读 · 1 评论 -
delphi下支持64位的钩子实现
从delphi.about.com上找了一个钩子的实现代码,写得很不错,可惜不支持64位,后来有一个帖子里说参考classes单元改改,就自己改了一下,现在分享给大家修改部分如下const{$IF Defined(CPUX86)} CodeBytes = 2;{$ELSEIF Defined(CPUX64)} CodeBytes = 8;{$IFEND}type p原创 2015-02-12 15:51:16 · 3591 阅读 · 2 评论