delphi。555计时器制作函数发生器里使用StringGrid.repaint函数,内存增长,怎么释放内存?

文章分类 - Delphi API
Delphi 函数
摘要: 先新建一个 VCL Forms Application 工程, 代码中就已经出现了两个类:一个是 TForm 类; 一个是 TForm1 类; TForm1 继承于 TForm.TForm 是 TForm1 的父类; TForm1 是 TForm 的子类. 全文:https://www.cnblog
stma 阅读(46) |
摘要: 无法定位程序输入点WSAPoll于动态链接库ws2_32.dll 解决办法:http://blog.csdn.net/wu/article/details/ 我用的是Delphi xe10 操作系统是 window xp 编译程序的时候,遇到上述问题,在下载 And
stma 阅读(100) |
摘要: 解决办法:http://blog.csdn.net/wenqiang0718/article/details/ //文件夹不能有空格
stma 阅读(61) |
摘要: 安装完成后,还需要配置开发环境, 下载jdk,sdk,ndk,以下提供两个网站,随便选一个就OK了。 http://tools.android-studio.org/index.php/sdkhttp://www.androiddevtools.cn/ ndk 我用的是 r9d 版本,我尝试用最新版
stma 阅读(720) |
摘要: 按照网上的文章去安装,结果下载了N个版本都无法成功安装,弹出提示要求下载什么。。。。 我还以为旧版没有清理干净,之后看了以下的视频,发现自己的破解步骤错了.. Delphi教程-XE10安装及破解 http://www.iqiyi.com/w_19rtwvxj0l.html 不要看这篇文章 -& h
stma 阅读(1113) |
摘要: 转自:https://zhidao.baidu.com/question/.html 其它方法:http://www.cnblogs.com/huhu0013/archive//1814943.html [delphi]保证程序只运行一个实例
stma 阅读(94) |
摘要: 创建一Delphi工程,放置一个TEdit和TButton,在Edit1中随便输入一些文字。 { 通过控件句柄获取控件实例 原理详见 Classes.pas 单元,13045行 &Delphi7& 原理详见 Classes.pas 单元,11613行 &Delphi2007& 原理详见 Classe
stma 阅读(42) |
摘要: //首先感谢文章被转载的作者们,记录得很详细,我在学习的时候,发现还有不足之处,我来补充一下。 看到该文的朋友们,希望你们和我一样建个博客多分享自己的笔记,好让大家互相学习,只有这样才能进步得更快。 Delphi 7连接MySql 5.5.15 http://blog.csdn.net/akof13
stma 阅读(32) |
摘要: 那就从TProgressBar继承,新写个控件 http://bbs.csdn.net/topics/
stma 阅读(15) |
摘要: delphi通过Idhttp和php交互 http://www.cnblogs.com/delphiclub/p/4409333.html //参考stream := TStringStream.Create('', TEncoding.UTF8); //中文就不会乱码了 如果像我一样在D7下使用i
stma 阅读(23) |
摘要: 本教程用 indy 10.5.8 替换 delphi 7 自带的 indy 版本,让大家深入了解 delphi 组件安装的方法。 第一步:下载 indy 10.5.8 组件,解压到合适的目录里。如 D:\Delphi7\Indy 10.5.8\ 下载地址: indy 10.5.8 第二步:菜单 Co
stma 阅读(30) |
摘要: delphi xe7 破解 Patch &bds.exe& failed: Wrong filesize 解决办法 http://jingyan.baidu.com/article/925f8cb8e1db53c0dce05675.html //这篇文章的破解方法是错误的,大家看安装部分就可以了。
stma 阅读(133) |
摘要: 由于调试时需要跟踪一个boolean变量,直接把它转成string型显示出来就行 用到booltostr(); var f : 可以booltostr( f , true); 第2个参数设置为true的时候,返回值由字符串 true,false 表示; booltostr( f ,
stma 阅读(79) |
摘要: 就这个例子: SHGetSpecialFolderLocation(0,CSIDL_DESKTOP,PIDL); SHGetPathFromIDList(PIDL,StartupDirectory); //该函数第2个参数是字符指针 网上的实例是这样定义变量的: StartupDirectory:a
stma 阅读(23) |
摘要: 当Label的Caption设置为汉字,AutoSize属性设置为True,文字内容会显示不完全,两种解决办法: 1. AutoSize设置为False,把Label调整成能显示出内容的大小。 2. 把Font字体为宋体,字号为10,字形为常规,字符集为“CHINESE_GB2312” 出处:htt
stma 阅读(209) |
摘要: 1.dcef3 下载地址:http://download.csdn.net/download/cyu/8484331 //我是从这里下载的,我试过很多下载地址,编译后都不支持flash播放,唯独这个被我碰巧了,呵呵~~~ 我用的是D7+ Win XP 使用方法很简单, 1.单击 Tools -& 添
stma 阅读(924) |
摘要: delphi SetWindowPos取消置顶 WinAPI: SetWindowPos - 改变窗口的位置与状态 http://www.cnblogs.com/del/archive//1067358.html //各参数详解。
stma 阅读(407) |
摘要: NT服务程序 http://blog.csdn.net/jackalfly/article/details/7352227 //如果是win xp sp3的话,直接用shellexecute就可以看到界面了。 win7就不能这样做了,所以查阅相关资源整理如下: 请教一个关于CreateProcess
stma 阅读(57) |
摘要: 附录B创建NT服务程序;服务程序通常运行在后台,它可以使计算机更加有用;实际的程序中服务的候选者可能具有如下特征:运行时;注意:VisualBasic.NET支持建立NT;Delphi直接地支持建立WindowsNT(包;B.1创建服务程序;建立服务程序最容易的方法是从NewItems对话;当单击S
stma 阅读(23) |
摘要: 服务程序通常运行在后台,它可以使计算机更加有用。有用是相对于特定的个人或组织而言的。服务程序最好的例子是IIS服务器。当在一台高性能的服务器或PC上安装了IIS后,IIS就作为后台服务运行并向浏览您的Web站点的人们提供Web页面。同一领域的其他服务还包括FTP、SMTP以及Telnet服务器。事件
stma 阅读(21) |
摘要: Windows NT服务程序不同于一般的运行程序,它不需要NT登录进去,只需要开机进入NT系统便可以运行,一般用于系统服务方面的应用,学会编写NT服务程序对网络管理人员而言是非常重要的,Delphi作为一种高效、快速、强大的开发语言,为开发NT服务程序提供了非常便捷的方法,加上其可视化界面以及与数据
stma 阅读(23) |
摘要: 附:http://www.cnblogs.com/heifengwll/p/6243607.html // Windows Serivce服务实现过程和打包安装 图文:http://blog.csdn.net/wsgqp/article/details/ Windows 2000/X
stma 阅读(32) |
摘要: delphi xe8中文破解版 详细图文安装教程 http://www.sdbeta.com/mf/8171.html Delphi xe5 开发安卓配置调试连接真机调试 问:里面不能出现调试的手机,这是怎么回事呢? 求助。。。。。。。手机已经开了开发模式! 答:1.打开开发
stma 阅读(1907) |
摘要: 首先,创建一个工程 edit1.txt:=XXXXX xxxxx 就是我们A.exe程序需要修改的值,写成XXXXX 是便于我们好查找它的位置。 打卡,winhex.exe 查找资源文件 的XXXX 位置 地址在 0004DD8C 转换成10 进制就是318844 (这个很关键,记下来) 在工程目录
stma 阅读(78) |
摘要: 写注册表就完了,简单示例:不过你的程序记得要支持参数//sFileExt:文件后缀,如:'.readme'//sFileType:文件后缀对应说明,如:'readme.files'procedure RegFiles(sFileExt,sFileType: String);varReg: TRegi
stma 阅读(22) |
摘要: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\E
stma 阅读(38) |
摘要: 转自:http://blog.csdn.net/fengyu09/article/details/8664801
stma 阅读(34) |
摘要: Delphi 中怎么得到系统的标准文件夹目录树 SelectDirectory('请选择要设置的目录','', SourceDircetory) 全文:http://bbs.2ccc.com/topic.asp?topicid=213437 Delphi如何获取系统版本号是windowsXP还是Wi
stma 阅读(31) |
摘要: 可以试试 clever internet suite,它处理SSL普通的网络一样,不需要更换或添加特别的组件。 to xiaoxingliang1 (xiaoxingliang1):网上下载一个新一点的 SecureBlackbox,设置搜索路径,然后你的 dpr uses ssl_sbb,that
stma 阅读(53) |
摘要: IDHTTP 版本 10.5.5,配合 IdSSLIOHandlerSocketOpenSSL 无法 GET ,错误提示 SOCKET ERROR # 0libeay32.dll ssleay32.dll 版本 0.98l ,使用 0.96版本,提示是 could not load SSL libr
stma 阅读(50) |
摘要: 前些日子,我一直被如何用TIdHTTP控件访问HTTPS弄得焦头烂额,最后终于受不了了,决定自己写一个。我调用了WinINet.DLL的API,效果还不错: http://www.itnose.net/detail/6147710.html
stma 阅读(33) |
摘要: 这里提供两种方法,同样可以达到获取网页源码,其中被注释的代码是第2种方法。 procedure TForm1.btn1Click(Sender: TObject); var retStr: DataLen:Int64; ldata: TStringSbegin ldata
stma 阅读(26) |
摘要: ics组件中httpcli获得网页源码 http://www.360doc.com/content/12/92.shtml ICS - Internet Component Suite (互联网控件包) http://www.2ccc.com/artic
stma 阅读(144) |
摘要: uses ActiveX,ComObj,StdCtrls,ShlObj,FileC procedure TForm1.N2Click(Sender: TObject); var tmpObject : IU tmpSLink : IShellL tmpPFile : I
stma 阅读(19) |
摘要: idhttp运行一段时间后会永久阻塞下去?设置个超时有用没?哪设置? http://www.codes51.com/itwd/2260629.html Delphi:INDY组件IDFTP/IDHTTP的connecttimeout超时问题 http://www.piaoyi.org/compute
stma 阅读(83) |
摘要: type TFunctionParameter = function(const value:Integer): //据我理解,这些就是函数指针;而且是没有函数名称的,换句话讲,匿名函数就是函数指针。 var Form1: TForm1; implementation {$R *.df
stma 阅读(30) |
摘要: GetCursorPos(point); //取当前鼠标指针位置 hWd := WindowFromPoint(point); //取当前鼠标指针位置句柄 //GetWindowText(hWd, lpCaption, 255); //获取当前鼠标指针位置文本 全文:http://blog.csdn
stma 阅读(38) |
摘要: delphi ListView 选中全行 delphi ListView1显示当前选中行 procedure TForm1.Button3Click(Sender: TObject); begin ListView1.SetF ListView1.ItemIndex := 80; //设置
stma 阅读(48) |
摘要: 这里以生成客户端证书和密钥文件为例,目的是建立一个加密的安全的tcp连接 1 生成密钥文件 命令:openssl genrsa -des3 -out PK.pem 2048 会提示输入密钥短语,输入后还会让输入确认 2 生成证书文件 openssl req -new -x509 -key PK.pe
stma 阅读(39) |
摘要: Delphi组件indy 10中IdTCPServer修正及SSL使用心得 http://www.21tx.com 日 Blog BlueTrees indy 10终于随着Delphi2005发布了,不过indy套件在我的印象中总是复杂并且BUG不断,说实话,不是看在他一整套组件
stma 阅读(275) |
摘要: 要跟银行做接口,需要使用delphi来post数据,但对方提供的是https开头的网址,需要使用证书,对方已提供证书了,但是还是调用不成功,使用的是idhttp和TIdSSLIOHandlerSocketOpenSSL来post的,indy 版本是10.5.5, OpenSSL的dll版本是open
stma 阅读(76) |
摘要: Indy版本是10.0.52使用的组件 IdHttpServer、IdServerIOHandlerSSLOpenSSLSLL库文件:Libeay32.dll、ssleay32.dll代码如下:http://bbs.csdn.net/topics/、试了多个SSL库文件,均报错
stma 阅读(496) |
摘要: 全文:http://blog.csdn.net/chinazhd/article/details/6566535 delphi 如何获取其它应用程序窗体中的所有控件句柄 实现原理是启动一个应用程序,通过ProcessID得到窗体句柄,然后对其设定父窗体句柄为本程序某控件句柄(本例是窗体内一个Pane
stma 阅读(138) |
摘要: 我们在编写程序的时候,经常会需要得到系统中的一些特殊目录,例如:桌面、收藏夹、历史文件、字体等。在windows98、windows NT、Windows 2000中他们的位置是不一样的,尤其在windows2000和wodows NT中,他们的位置随着登陆用户的不同而改变。那么我们要如何取得这些特
stma 阅读(100) |
摘要: Delphi将视频加载到MemoryStream中去,播放! 用DSPACK组件 http://bbs.csdn.net/topics/ 高手进,如何实现音乐的边播放边下载 http://bbs.csdn.net/wap/topics/
stma 阅读(24) |
摘要: 首先在窗体上拖拽sqlconnection和sqlquery两个控件 然后在测试连接中,写入以下代码(注意exe生成目录下需要有dbxopenmysql50.dll和libmysql.dll) 全文:http://blog.csdn.net/haibin_hu/article/details/518
stma 阅读(116) |
摘要: 例如“钱”字转为ASCII码: ss:='钱'; edit2.Text :=inttohex(ord(ss[1]), 2); EDIT2就会显示出“94B1” 如果将94B1再转成汉字时, EDIT1.TEXT:=CHAR($94)+CHAR($B1); 以上写法在DELPHI7中是通过的。在DEL
stma 阅读(987) |
摘要: 今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。 结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。 下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使
stma 阅读(35) |
摘要: //机内码 -& 汉字Function MacCode2Chinese(AiUniCode : Integer) : SVarch, cl : IBegin ch := AiUniCode Div 256; cl := AiUniCode Mod 256; Result :
stma 阅读(662) |
摘要: 问: 例如:[a-z]表示从a到z之间的任意一个。不是这样的吗?谁能给我解释一下[ ]的所有用法?感谢 答:
stma 阅读(10870) |
摘要: 1 问:提示API 没有权限怎么办? 调用API出现报错 &code&11&/code&&msg&Insufficient isv permissions&/msg& 。 调用API出现报错 &code&11&/code&&msg&Insufficient isv permissions&/msg&
stma 阅读(576) |
摘要: //很早前,也有2、3年前了,使用过这个类 IdMultiPartFormData 突然想起了,当时初学delphi要上传图像,花了几天时间在网上找资料。如今我怕忘记了,转载这篇文章: 全文:http://blog.sina.com.cn/s/blog_6b6e6bad0100yvwx.html d
stma 阅读(53) |
摘要: 好的工具用起来就会顺手,很多Delphi从业者用惯了Delphi工具,在面对移动APP称王的时代似乎有力使不出。现在不用再担心JAVA语言的一些特性,太纠结了。我们直接用Delphi XE7开发吧。虽然Delphi XE2开始就支持移动开发了,但这中间的五个版本实在令人头痛,问题不少。作为开发者希望
stma 阅读(206) |
摘要: 在PHP中使用正则匹配中文,很多时候会出现问题,在不同的编码情况下,正则表达式不太一样,所以希望大家注意,在使用正则匹配中文的时候,多多注意编码问题。 在JS下能够使用的在PHP中不一定可以使用,比如:/^[a-zA-Z0-9\_\.\_\.\u4E00-\u9FA5\uF900-\uFA...
stma 阅读(9362) |
摘要: ((?=[\x21-\x7e]+)[^A-Za-z0-9])这个匹配所有键盘上可见的非字母和数字的符号全文:http://zhidao.baidu.com/question/.html
stma 阅读(39) |
摘要: 全文Lhttp://wenku.baidu.com/view/99337eea524dedf4.html我不知道什么是UTF-8 和 UniCode有什么关系,或者区别,从上文中可以发现,UniCode编码有utf-8和gbk等形式。就我现在开发为说吧,我用的是Delphi7不支持u...
stma 阅读(18) |
摘要: 今天做作来发现有这样一个问题:这代码写在程序中没有问题reg := TRegExpr.Creg.Expression := //在网页中是单引号,要在delphi代码中用两个单引号表示一个单引号。这样运行是正确的。而如果将正则表达式写在edit,memo等文本框中运行就无效果输出。例如:...
stma 阅读(52) |
摘要: 当创建了多个线程,并且多个线程都要访问同一资源,,就有可能出现混乱,于是用Synchronize来控制,使同一时间只有一个线程使用那部分资源,Synchronize参数里面的代码就是多线程需要公共的代码!线程是进程内一个相对独立的、可调度的执行单元。一个应用可以有一个主线程,一个主线程可以有多个子线...
stma 阅读(59) |
摘要: 之前已经有了两种多线程的同步方法:CriticalSection(临界区) 和 Mutex(互斥), 这两种同步方法差不多, 只是作用域不同;CriticalSection(临界区) 类似于只有一个蹲位的公共厕所, 只能一个个地进;Mutex(互斥) 对象类似于接力赛中的接力棒, 某一时刻只能一个人...
stma 阅读(20) |
摘要: 提问:我是新人,想问一个问题,如何在不使用线程池的情况下,建立一个动态的线程数组来创建多个线程呢?比如TH:array[0..9]ofT在窗体的Button中使用代码Fori:=0to9doTH[i]:=Thread.create(false);这样就依次创建了10个线程.但是.如果我想...
stma 阅读(75) |
摘要: 先看一个非多线程的例子, 代码执行时不能进行其它操作(譬如拖动窗体):{自定义方法: 在窗体上绘制...}procedure MyMvar i: Ibegin for i := 0 to 500000 do begin Form1.Canvas.L Form1....
stma 阅读(30) |
摘要: var m_bSort: boolean= //控制正反排序的变量//ListView排序的回调函数,默认的是快速排序法,也可以自己在这里做算法function CustomSortProc(Item1, Item2: TListI ParamSort: integer): in...
stma 阅读(31) |
摘要: 代码文件:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtype TForm1 = class(TForm) ...
stma 阅读(255) |
摘要: procedureTForm1.Button1Click(Sender:TObject);beginShowMessage(Sender.ClassName);procedureTForm1.Button2Click(Sender:TObject);beginButton1Click(But...
stma 阅读(60) |
摘要: 在Delphi中静态调用DLL 引用外部Dll External Dll 导入Dll全文:http://blog.csdn.net/fjclc2008/article/details/7637225http://blog.csdn.net/zzflover/article/details/25294...
stma 阅读(68) |
摘要: 全文:http://bbs.csdn.net/topics/亲测如下:1.在 dll 的 uses 部分添加ShareMem 单元。例如:library Project1;{ Important note about DLL memory management: ShareMem m...
stma 阅读(42) |
摘要: 请问正则表达式 [abc] 和 (a|b|c) 有哪些区别?并举例说明。谢谢!仅仅只匹配一个字符,那没有区别。如果2个以上字符就有区别了中括号和小括号的作用是完全不同的。 [abc] 只是一个简单的字符类,匹配其中任意一个字符,或区间内字符 (a|b|c) 是分组,会返回匹配到的项 例如:(aba|...
stma 阅读(48) |
摘要: 编译说明:delphi Chromium浏览器 源码支持d7 d10 xe2 请指定路径为 src里的文件 packages里的文件 必须把bin\Win32文件与生成的exe文件放到同一文件夹下下载地址http://download.csdn.net/detail/ozhy111/5904995D...
stma 阅读(197) |
摘要: FireFox使用的是Gecko内核,如果我们想在自己的程序里用,是否可以呢?答案是肯定的,因为Gecko内核有for Delphi的封装!下面我们就用它来做一个最简单的Gecko浏览器首先下载Gecko SDK,这个是Gecko内核的开发包,必须下载,不然不能开发的然后下载Gecko Compon...
stma 阅读(239) |
摘要: 别人的软件界面有类拟 选项卡控件 但是又不像是选项卡,经查找资料发现,我认为是工具栏按钮http://www.bhcode.net/code/924.htmlhttp://www.cnblogs.com/xiaojinma/archive//2805517.htmlhttp://...
stma 阅读(46) |
摘要: 利用HIDHTTP和TIdSSLIOHandlerSocket访问https网站时,抛出异常errorconnectingwithssl。但是同一链接在IE浏览器里面没有问题。为什么?解决了是TIdSSLIOHandlerSocket的属性SSLOptions下的method设置为sslvSSLv2...
stma 阅读(137) |
摘要: 问:本人最近刚刚学习正则表达式;在学习的过程中,一直被中文匹配的正则表达式而困惑;试过网上一些人提供的方法,例如:[\u4E00-\u9FA5]+等等之类,在Delphi里面没有试成功过,很是郁闷啊;在网上下载了一个RegexBuddy工具,它好像是使用C++Builder或者Delphi编译的;当...
stma 阅读(557) |
摘要: 不同语言必须显式指定Unicode模式全文:http://www.haogongju.net/art/791187
stma 阅读(31) |
摘要: 很详细列表:http://www.cnblogs.com/yirlin/archive//373222.html
stma 阅读(31) |
摘要: 让字符串不区分大小写就可以了!uses PerlRegEx; //uses 正则表达式单元procedure TForm1.FormCreate(Sender: TObject);var reg: TPerlRegEx; //声明正则表达式变量begin reg := TPerlRegEx.C...
stma 阅读(44) |
摘要: 简介IE的面板实际就是嵌入到IE浏览器中的子窗体。面板有两种显示模式,一种是垂直显示在浏览器的左侧,一种是水平显示在浏览器的下方。IE浏览器内置提供了很多的标准面板,如收藏夹和搜索面板这些是垂直的面板,而每日提示和讨论面板则是水平的面板。此外我们还可以通过实现COM组件来添加我们自己的浏览器面板到I...
stma 阅读(53) |
摘要: 至于想处理MOUSECLICK时的MOUSE位置和状态,你可以不处理ONCLICK事件,而在ONMOUSEDOWN事件里处理。这个事件提供的参数分别告诉了你 Sender:那一个按钮接收这个鼠标事件: Shift:当前鼠标的按钮状态是什么样,其他键盘状态是什么样,我们一般用 if Shift...
stma 阅读(87) |
摘要: 在正则表达式中()表示一个分组,()属于正则表达式的特殊字符,是具有实际意义的,所以要匹配括号必须要加上 反斜杠 \( 来说明这表示的是一个普通的小括号,而不是一个正则分组转:http://zhidao.baidu.com/link?url=wVd9QixdMFF2MBmMRDTo8XjS0Xz85...
stma 阅读(46) |
摘要: \b(cat|dog|dohpin)\b如果还有其他单词,可以类似方法加进去转:http://zhidao.baidu.com/link?url=gZQCVDB1J6IC7Cx5Z3nKmO3ACnI0KgVnQca__kEeW3tZEZUFzHIjrz95nFefEfuIbWmVfzt88Z3Z0...
stma 阅读(1937) |
摘要: delphi制作资源文件和释放资源文件的方法首先先制作资源文件如何制作呢?AAA EXEFILE AAA.exe 把这段文字复制到个记事本里保存为AAA.rc同理:bbb dllfile bbb.dll 写入bbb.rcAAA为在程序里调用资源文件的名字 就是给资源文件起个名字在程序里调用EXEFI...
stma 阅读(2349) |
摘要: http://hi.baidu.com/wayintolove/blog/item/ad1dcd53f7c5a.html为了让人能快速的理解 静态调用、动态调用,现在做一个函数封装在一个DLL中,然后在APPLICATION form里面调用这个函数,这个函数处理两个数的和。用...
stma 阅读(103) |
摘要: 我们在用Delphi编译完程序,准备发布产品时,总希望随产品发布个性信息以标示产品的来源以及开发者等信息,就像windows的程序一样,使我们一看属性就知道他是微软的产品,这些在Delphi中是如何实现的呢?下面我就来给大家演示和说明给exe,dll文件添加版本信息的方法。第一,给exe文件添加版本...
stma 阅读(84) |
摘要: 另外两种多线程的同步方法 CriticalSection(临界区) 和 Mutex(互斥), 这两种同步方法差不多, 只是作用域不同;CriticalSection(临界区) 类似于只有一个蹲位的公共厕所, 只能一个个地进;Mutex(互斥) 对象类似于接力赛中的接力棒, 某一时刻只能一个人持有,...
stma 阅读(30) |
摘要: 钩子的类型总共15种,每种钩子处理不同的消息(这个资料很多,自己看下)。 钩子用SetWindowsHookEx安装,放在DDL中,有全局钩子的,比如键盘,鼠标等,也可以是线程的,指定窗口的(不是很准确,但实用)。是全局还是指定,主要是看SetWindowsHookEx中的参数设置:全局时:第三个参...
stma 阅读(105) |
摘要: //类单位unit PinterfacetypeTPerson = class(TObject)private FName: FAge: Ipublic procedure SetName(const strName: string); proced...
stma 阅读(32) |
摘要: function UniCode2GB(S : String):SVar I: IbeginI := Length(S);while I &=4 do begintryResult :=WideChar(StrToInt('$'+S[I-3]+S[I-2]+S[I-1]+S...
stma 阅读(85) |
摘要: 中文 转 unicode 说白了就是将单个字符,例如:“网页”的页字 用 Ord函数转成 10进制数字,再转为16进制数据。就这样。其实,用系统的计算器,科学型计算,也可以计算出来。//Char类型与其编码值的转换:varb:Bc:Cbeginb:=Ord('A');{返回:65}b...
stma 阅读(361) |
摘要: 全局钩子是必须用DLL导出函数做的!但是线程钩子是可以做在程序里的!当全局钩子触发的时候,系统去DLL里寻找相关的触发函数!而不是在程序内部寻找的!所以假如你把钩子函数写在自己的程序内部,只能在你的程序是活动窗口的时候,消息才被触发的!但是你让程序失去输入焦点,钩子函数就会失效的!我很理解LZ的想法...
stma 阅读(47) |
摘要: 程序实现 (1)抓取屏幕图像的难点有两个:一是如何夺取屏幕的句柄,二是知道屏幕句柄后如何获取屏幕的图像。Borland公司的设计人员用画布(Tcanvas)对象封装了Windows的大部分图形输出功能,可以通过它以更直观的方式和Windows的屏幕打交道,而不必关心令人头疼的Windows API...
stma 阅读(920) |
摘要: {抓屏幕图像,保存为内存流--BMP流,压缩BMP流,JPG流,以及使用流}{在网络中传送BMP流和JPG流的速度没测试过}{BMP流的压缩是无损压缩}{全局变量memoryStream:TMemorySmemoryStream:=TMemoryStream.}varima...
stma 阅读(54) |
摘要: var ExeName:PC StartupInfo:TStartupI ProcessInfo:TProcessIbegin FillChar(ProcessInfo,sizeof(TProcessInformation),0); FillChar(Start...
stma 阅读(241) |
摘要: 声明:function LastDelimiter ( const Delimiters, Source : string ) : I描述:LastDelimiter函数查找在Source字符串中Delimiter集合中任一字符最后出现的位置。如果找到,则返回位置值,否则,返回0。备注...
stma 阅读(61) |
摘要: 以上方法可以说是相对偏一些,我是基于一些网友提供的想法来实现的,另外其实还可以直接使用Combobox本身的东西来实现,这个感觉上更正宗一点,也不需要用到’额外'的控件了。使用Combobox提供的AddItem的方法:[delphi]view plaincopyprint?procedureAddItem(Item:SAObject:TObject);Item:添加项的字符串值。AObject:关联的对象。AddItem方法添加项目,并同时与AObject对象进行关联,并可以读取、修改被关联对象,这里我们就利用它这一特性,把项目的真实值给关联到每一个项去,就实现了显示内容
stma 阅读(177) |
摘要: procedure TForm1.btn1Click(Sender: TObject);var i: s:begin for i:=0 to memo1.Lines.Count -1 do //循环Memo表的所有行 begin s:=memo1.Lines[i];//用S变量才暂时存储这个量,最后一步恢复用 memo1.Lines.Delete(i);//去除比较字符串 while memo1.Lines.IndexOf(s)&-1 do//如果大于-1就说明找到了,进行下一步的删除 memo1.Lines.Delete(memo1.Lines.Index
stma 阅读(75) |
摘要: 百折不挠, 10:43:15进行DLL注入时发现,注入的DLL中的函数只能调用预先放在DLLMAIN中的函数,这样注入的DLL编写很不灵活,能不能注入目标进程后,根据不同的需要在目标进程中远程调用DLL中的不同函数?比如:DLL中导出三个函数a()b()c()如果要注射后调用a函数,就要把a放在dllmain中,而且只是一次性的,注入完成后要再让目标进程调用b函数的话,要怎么办??问题在于,要调用函数b,就要在目标进程中找到函数b的地址,要怎么动态的取得函数b在目标进程中的地址?e枚举出目标进程中加载的DLL模块句柄,再用GetProcAddress好象不行。-CamelL
stma 阅读(1377) |
摘要: 前言:学习HOOK中,万一老师讲解HOOK入门教程:http://www.cnblogs.com/del/category/124150.html正题:全局HOOK拦截大部分键盘消息,Ctrl+alt+del 同Num Lock 目前测试无法截获。写全局Hook基本步骤:因为为全局Hook,要用到dll,以后就不知道需要不…………一.创建dll1.声明同实现回调函数2.创建安装钩子函数3.创建卸载钩子函数4.按照dll格式输出函数二、创建exe调用dll源代码:///////////////////////////dll代码///////////////////////////////////
stma 阅读(85) |
摘要: 运算符列表详解 推荐阅读:http://www.cnblogs.com/del/archive//989467.html
stma 阅读(31) |
摘要: 1字节等于8位,是8位二进制位移动了一位,等于4字节,4个8位 等于32位。各种流在存取、操作数据的机理上都是一样的。说白了,就是“无类型”,它不管你是整型、字符串型、图象、还是声音,只要你告诉它要读写的数据的首地址和长度,就可以了。也正是由于这个原因,使用流读写数据的速度都比较快。Delphi之所以还要派生出各种各样类型的流,其实就是为了使操作某些具体类型的数据时更方便、更容易一些而已。比如:TMemoryStream中有个Memory属性,它就是这块内存的首地址,使得我们直接操作内存变得方便了;TStringStream中有个DataString属性,使我们象读一个字符串一样读取整个流..
stma 阅读(1162) |
摘要: 如果我们在Form中拖入一个Image控件,并设置好picture后,Alt+F12就可以看到Form的源代码中已经将图片转成了16进制字符串,如下:http://www.pfeng.org/archives/290那么在实际的应用中如何实现把图片转16进制呢,可以参考以下转换PNG的例子,其他格式的图片转换都基本类似:?7{从 png 图片到十六进制字符串}function Png2Hex(png:
stma 阅读(154) |
摘要: TJpegImage 跟 TImage都是类TImage是可视化控件 就是你拖到form上能看到而TJpegImage只是生成一个graphic对象,是无法直接显示的TImage有一个Graphic对象,默认是只可以装载bitmap图像的就是bmp图片但是可以给TImage的grapic赋一个jpeg的graphic对象来实现 Timage装载jpg图像具体代码如下varjpg: TjpegI jpg := TJpegImage.jpg.loadfrom('文件路径')Image1.picture.assign(jpg);jpg.百度知道:ht
stma 阅读(82) |
摘要: 首先,先下载TgifImage.pas单元。步骤:[project]--&[add to project...] 选择TgifImage.pas单元然后编译即可。在使用TImage加载显示gif时通常是安装 TGifimage来扩展实现,在使用中也会有动态创建控件的情况,但如果直接加载gif图片话,gif动画并不会动,这就要先创建TGifImage类来加载动画,最后再交给Timage。代码如下:procedure TForm1.Button1Click(Sender: TObject);varobjImg: TIobjGif: TGIFIbeginif OpenDia
stma 阅读(68) |
摘要: 服务器返回的消息服务器返回的HTTP消息也分为消息头和消息体两部分。前面连载的第二篇里已经介绍了返回消息中常见返回代码的含义。对于非正常的返回代码的处理比较简单,只要照着要求去做就好了,而对于正常的返回代码(200),其处理方式就多种多样了。1、Content-TypeContent-Type是返回消息中非常重要的内容,它标识出这个返回内容的类型,其值为“主类型/子类型”的格式,例如最常见的就是text/html,它的意思是说返回的内容是文本类型,这个文本又是HTML格式的。原则上浏览器会根据Content-Type来决定如何显示返回的消息体内容。常见的内容类型有:1 text/html HT
stma 阅读(70) |
摘要: 1.采用技术方案为hook方式,非不可靠的硬编码、非不负责任的读内存方式。2.考虑便于维护的技术方案,不会随qq变更而需要大作改动,类似以前版本的SaveMsg方案。3.支持后台聊天记录即不打开聊天窗口即可记录聊天记录。4.支持图片、表情、文件传输记录,可以显示为与消息管理器同样效果,即与你在QQ历史聊天记录里看到的是一样的效果(图文并茂)。转自:http://bbs.csdn.net/topics/我也想实现这个功能,但是不知道详细技术。。。
stma 阅读(212) |
摘要: hFile := FileOpen(strs[i], fmOpenRead);if (hFile&0) or (FileGetDate(hFile)=-1) thenbeginShowMessage('添加文件失败,请重试!');EDT := FileDateToDateTime(FileGetDate(hFile));s := FormatDateTime('yyyy-mm-dd hh:nn:ss', DT);FileClose(hFile);转自:http://hi.baidu.com/nsgtao/item/0dc5b3d6e5d0d
stma 阅读(62) |
摘要: 5.文件属性 FileGetAttr :返回文件属性FileSetAttr :设置文件属性 6.文件状态 FileSize :返回文件对象大小IOResult :返回上一次I/O操作的状态FileExists :检测文件是否存在 7.文件日期DateTimeToFileDate :把Delphi日期格式转换为DOS日期格式FileDateToDateTime :把DOS日期格式转换为Delphi日期格式FileGetDate : 返回文件的DOS日期时间戳FileSetDate : 设置文件的DOS日期时间戳 8.文件读写Read,Readln :从文本或记录文件中读取变量Write : 将指
stma 阅读(57) |
摘要: vars :beginsetlength(s, memorystream.size);copymemory(@s[1], memorystream.memory, memorystream.size);//pos('.....', s);转自:http://d.02t.cn/html/neicun/521.html
stma 阅读(95) |
摘要: 许多时候我们希望程序只有一个实例在运行,而不是多个实例同时运行。 其实完成这一功能有很多种方法,我把自己知道的几种方法简单介绍一下。在Delphi中建立一个应用程序,然后单击菜单“Project”,单击“View Source”,这样就在代码编辑器中打开了工程文件://一 使用全局原子program Project1;uses windows, Forms, Dialogs, Unit1 in 'Unit1.pas' {Form1};{$R *.res}const myatom='我的全局原子方法';begin if GlobalFindAtom(myatom)
stma 阅读(118) |
摘要: 以下文章推荐阅读:http://bbs.csdn.net/topics/http://www.cnblogs.com/snow001x/archive//1347854.htmlhttp://blog.csdn.net/warrially/article/details/8280724
stma 阅读(81) |
摘要: procedure TForm1.MyOnClick(Sender: Tobject);begin ShowMessage((Sender as TLabel).Caption+' is clicked'); //如果是写多个相同控件事件的话,这句就是关键。procedure TForm1.btn1Click(Sender: TObject);var i,n:I lbl: TLbegin n:=6; for i:=1 to n do begin lbl:= TLabel.Create(Application); lbl.Parent :=...
stma 阅读(124) |
摘要: 在DELPHI中我们经常要动态的创建控件以及控件的事件。例如,我们可能想根据程序需要动态的创建一些Tshape组件来创建某个图形,并使得在鼠标移动上去之后可以完成某些操作。这一般需要需要三步:生成一个制定组件类的实例为这个实例付初值在使用完毕后,释放资源 下面将通过一个例子来演示,例子的功能是动态创建一个Tshape的实例MyShape,并且在鼠标移动到MyShape后窗体的标题栏,显示鼠标的座标。第一步:新建立一个工程,工程上主窗体上放一个按钮BitBtn1,并在代码文件的uses内添加ExtCtrls。第二步:在按钮的OnClick事件中写procedure TForm1.BitBtn1C
stma 阅读(3459) |
摘要: 怎么样给ListView控件的Items填加下拉框。主要是SumItems中的二三列添加combobox 。请牛人指教谢谢------解决方案--------------------Delphi(Pascal) codeuses CommCprocedure TForm1.Button1Click(Sender: TObject);var R: TRbegin ListView_GetSubItemRect(ListView1.Handle, 1 {第几个Item}, 2{这个Item的第几个SubItem}, LVIR_BOUNDS, @R); if ComboB...
stma 阅读(135) |
摘要: 全文:http://blog.csdn.net/god00/article/details/6447529
stma 阅读(36) |
摘要: 最近在做Delphi下的简体与繁体转换, 发现Windows2000自带的工具&中文转码器&很好用, 不仅可以转内码(BIG5--&GBK), 还可以将繁体字转为简体字(如:東--&东).要转内码比较简单, 使用MultiByteToWideChar先将简体/繁体(GBK/BIG5)转为UniCode, 再使用WideCharToMultiByte从Unicode转为繁体/简体(BIG5/GBK).EX:function Big52GB( ABig5String: string): S{ BIG5 to GBK : BIG5 ==& Unico
stma 阅读(107) |
摘要: //参考如下代码functionUnicodeToMBCS(//将Unicode编码字符串转换成多字节字符串mCodePage:UINT;//对照表页码mUnicode:WideString//Unicode编码字符串)://返回处理后的字符串varL:IbeginL:=WideCharToMultiByte(mCodePage,0,PWideChar(mUnicode),-1,nil,0,nil,nil);SetLength(Result,L);ifL&=0thenEWideCharToMultiByte(mCodePage,0,PWideChar(
stma 阅读(68) |
摘要: function Cn2Big(CnStr: string): //简体中文转繁体中文var Len: Ibegin Len := Length(CnStr); SetLength(Result, Len); LCMapString(GetUserDefaultLCID, LCMAP_TRADITIONAL_CHINESE, PChar(CnStr), Len, PChar(Result), Len);function Big2Cn(BigStr: string): //繁体中文转简体中文var Len: Ibegin Le.
stma 阅读(195) |
摘要: 最近在写网页抓取程序时候,很多时候需要对字符进行URL编码,其实URL编码就是将每个字节用16进制的文本表示,前边在家上%,了解了这一点,那么写个函数就很简单了,于是就随手写了个两个简单的函数对字符进行URL编码解码。把代码贴出来,也许对大家有用阿.. :)function URLencode(str:string):var i: temp:begin for i:= 1 to length(str) do begin temp:=temp+'%'+inttohex(integer(str[i]),0); result:=t
stma 阅读(78) |
摘要: //创建一个文本文件procedure TFrmAutomatismBalance.FlatButton3Click(Sender: TObject);var TF:TextF PathStr:begin PathStr:=ExtractFilePath(Application.ExeName)+FormatDateTime('yyyy-mm-dd',Now())+'.txt' ; AssignFile(Tf,PathStr); ReWrite(Tf); CloseFile(Tf);//往文本文件里面写入数据procedure TF
stma 阅读(710) |
摘要: procedure自定义方法名(varMsg:TMessage);message待拦截的消息常量;当你想拦截某个消息时,只需按上边的方法结构声明即可.比如响应移动消息的方法命名:procedureCustMove(varMsg:TMessage);messageWM_MOVE;为什么窗口大小改变后,就会触发WM_SIZE消息????Delphi中关键字message的用法???怎么定义自己的消息??转自Lhttp://bbs.csdn.net/topics///无聊时狂下论坛,总有收获的。里面提到一段代码procedureTForm1.Button1Click(Sender:
stma 阅读(49) |
摘要: 转自:http://zhidao.baidu.com/question/.html //有图有说明1、这个问题小儿科。能用麻溜结贴,不能用就追问,别当没看到。2、解决思路。StringGrid是这样运作的:goRowSelect就是把某行背景涂上颜色,而goEditing是用一个Edit置于选中的Cell之上。狗屎Delphi自以为聪明,把编辑框对象封装了起来,所以从前者作为突破口要比后者简单得多。3、解决办法。将StringGrid的Options属性,goEditing设为True,goRowSelect设为False。然后在Form中加入如下代码:type TForm.
stma 阅读(899) |
摘要: 用Raize控件包中的rzSplitter就可以做出类似的效果
stma 阅读(69) |
摘要: SplitterBar的使用方法可以在窗体左边使用TREEVIEW,右边使用MEMO,可以使用SplitterBar来调节左右比例具体做法如下:1.设置TreeView的Align属性为alLeft.2.从FORM窗体上剪切(Ctrl-X)出MEMO控件3.增加一个Panel1控件,并将其Align属性为alClient.4.将MEMO贴回Panel1上,并将其Align属性为alClient.5.添入SPLITTER控件6.在SPLITTER的ONMOVE事件中写入treeview1.width:=splitter1.转自:http://www.codesky.net/articl
stma 阅读(53) |
摘要: Delphi在Listview中加入Edit控件 或者 使用该控件 StringGrid http://blog.sina.com.cn/s/blog_6rgtn.html
作者:李海彬 Listview是一个非常有用的控件,我们常常将大量的数据(如数据库里的数据)导入到Listview中,有的时候我们需要编辑Listview里的数据,而它并不提供编辑的功能,怎么样才能使它具有编辑功能呢?你可以试试下面这种方法。 首先在FORM1中放置一个Listview控件和一个Eeit控件。Edit控件有什么用?当然是用来编辑Listview...
stma 阅读(104) |
摘要: procedure TForm1.btn1Click(Sender: TObject); var mem:TMemoryS s: txt:TextFbegin mem := TMemoryStream.C idhtp1.Get('地址我不给出来了,费事别人笑话',mem);{ mmo1.Text := idhtp1.Get('http://www.aizhan.com/baidu/?s=kan.weibo.com&sortType=position');如果这样写的话,有时只能获取到一部分的源代码。用流就可以
stma 阅读(67) |
摘要: //来自大富翁:http://search.delphibbs.com/displ.aspx?lid=3877333/// 半角转全角的函数function ToSDB(AInput: Widestring): WideSvar I: I nChar: Cbegin Result := AI for I := 1 to Length(AInput) do begin nChar := Cardinal(WideChar(AInput[I])); if nChar = 32 then begin Result[I] := WideChar(12
stma 阅读(50) |
摘要: 汉字的表示和正则表达式引擎相关,不同引擎的写法不同,下面的写法适用于java引擎,或者一切以unicode来表示字符的引擎。1、基本规格——针对汉字的一般集合(cp936,约等于GBK,共计20000多汉字)[^\dA-Za-z\u-\u9FCB\uE815-\uE864]2、扩充规格——针对多一些的汉字(支持CJK ExtA,共计接近30000汉字)[^\dA-Za-z\u-\u4DB5\u4E00-\u9FCB\uE815-\uE864]3、豪华规格——针对更多的汉字(支持CJK ExtB、C、......,共计75000多汉字)(?![\dA-Za
stma 阅读(7208) |
摘要: overload是重载;相同的函数名,参数不同,使用不同的函数体override 是对父类声明的vitural或dynamic方法进行覆盖overload的使用方法:[delphi] view plaincopyprint?functionmax(a,b:Byte)://声明成重载函数 functionmax(a,b:integer)://可以看出两个函数的参数类型不一样 function max(a, b :Byte): //声明成重载函数 function max...
stma 阅读(51) |
摘要: SetCursorPos(100,50); 设置鼠标坐标GetCursorPos(pos); 获取鼠标坐位参考:http://bbs.csdn.net/topics/380556http://bbs.csdn.net/topics/还有一个就限制光标在矩形区域:相关函数ClipCursor() http://www.cnblogs.com/devcjq/articles/2908859.html
stma 阅读(39) |
摘要: 其实只是利用一个隐藏的控件来制定矩形区域,可以使Button、Panel、Memo等,总之看不见它,然后在窗体OnMouseDown函数中添加SendMessage(Handle, WM_SYSCOMMAND, 61457, 0);来移动窗体,具体代码如下:新建工程,加一个Panel控件,Visible属性设为False,调整大小,完成后鼠标在该控件矩形内可以拖动窗体,而该位置可以添加Image等,就能实现伪标题栏效果://开始unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Co
stma 阅读(53) |
摘要: procedure TForm1.Button3Click(Sender: TObject);var rtButton4:TRbegin //获取Button4控件的坐标区域 rtButton4:=Button4.BoundsR //将坐标转换为屏幕坐标 MapWindowPoints(handle,0,rtButton4,2); //将坐标移动的范围限制在Button4控件上 ClipCursor(@rtButton4);转自:http://zhidao.baidu.com/question/.html
stma 阅读(71) |
摘要: Flash是Macromedia公司出品的,用在互联网上动态的、可互动的shockwave。它的优点是体积小,可边下载边播放,这样就避免了用户长时间的等待。 FLASH可以用其生成动画,还可在网页中加入声音。这样你就能生成多媒体的图形和界面,而使文件的体积却很小。 FLASH虽然不可以象一门语言一样进行编程,但用其内置的语句并结合javaSCRipE,您也可作出互动性很强的主页来。 FLASH另外一个特点就是必须安装插件PLUG-IN,才能被浏览器所接受!当然这也避免了浏览器之间的差异,使之一视同仁! 但是你知道吗?在delphi中可以直接打开flash动画,并控制它播放和停止。你还可以得到它
stma 阅读(568) |
摘要: I am handling from my Application associated extension files from Windows. So when you double click a file from Windows it will execute my program, and I handle the file from there, something likeprocedure TMainForm.FormCreate(Sender: TObject);var i: Ibegin for i := 0 to ParamCount -1 do begi
stma 阅读(88) |
摘要: //以下代码在Delphi7 + XP SP3下测试通过//button1为注册钩子屏蔽,button2为卸载钩子取消屏蔽F1unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtypeTForm1 = class(TForm)Button1: TBButton2: TBprocedure Button1Click(Sender: TObject);procedure Button2Clic
stma 阅读(52) |
摘要: Delphi提供了访问命令行参数的方便的方式,那就是使用ParamStr和ParamCount函数。其中ParamStr(0)返回的是当前程序名,如C:TESTMYPROG.EXE,ParamStr(1)返回第一个参数,以此类推;ParamCount:应用程序的参数个数 典型用法一、writeln('你输入了',ParamCount,'个参数');典型用法二、if ParamCount&1 then writeln('你输入的参数不够,需要指定一个参数。');典型用法三、var i:beginfor i:=1 to Para
stma 阅读(95) |
摘要: Delphi实现通过一个程序调用另外一个程序并传递多个参数给另外一个程序procedure TForm1.Button1Click(Sender: TObject);var hwndle:HWND; lcParamters :Sbegin lcParamters:='+id +r +D '+ 'lcDirFile'; ShellExecute(hwndle,nil,'E:\Project\ShenfenzhengYueduqi\Bin\ShenfenzhengYueduqi.exe', PAnsiChar(lcParamters),n
stma 阅读(124) |
摘要: 软件的皮肤技术,简单的总结一下,可以用两个字来表示:自绘(或者说贴图)。当然,具体的效果如何,就要看你的基本功如何了。根据实现的方式,可以分为两类:A. 对现有的标准控件的换肤。Appface, Skin++, VCL Skin,SkinBuilder等一批换肤软件就是该类的代表。B. 自己编写控件。AlphaConttrol, RZ系列控件就是该类的一些代表。这类控件库在delphi中尤其多。编写皮肤需要基本功:A. Windows 绘图技术。既然是要换肤,当然要进行绘图,而要进行绘图,则必须了解Windows的一些绘图函数和Window控件的绘制过程。B. Windows消息系统的了解。W
stma 阅读(89) |
摘要: unit Unit14;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.AppEtype TForm14 = class(TForm) ApplicationEvents1: TApplicationE procedure FormCreate(Sender: TObject); procedure Applicati
stma 阅读(124) |
摘要: 一、主要场景 a)主程序启动另外一个程序,并传递参数 b)主进程向一个已经运行中的程序传递参数二、代码 1)调用程序:var HWND: DWORD; ApplicationHWND:DWORD;begin HWND:=FindWindow('TFrmMain', '参数接收窗口'); ApplicationHWND:=GetWindow(HWND,GW_OWNER); if HWND && 0 then begin memo1.Lines.Add('参数接收程序已运行,向参数接收窗口投递消息。。。'); SendMessage(HW
stma 阅读(246) |
摘要: 1.delphi 调用js,触发就是方法:var win: IHTMLWindow2;beginwin := IHTMLDocument2(wbmap.Document).parentWWin.execScript('addAllPoits(' + QuotedStr(strValue) + ')', 'javascript');addAllPoits:js的方法strValue:方法参数;'javascript':脚本语言;2.js页面操作触发delphi程序写的方法,主要原理是:修改window.exter
stma 阅读(473) |
摘要: Delphi 对汉字字符串的截取问题关键字: delphi 汉字 截取 在Delphi中,用Length来取字符长度时,会将汉字当成两个字节来计算,Copy把汉字当成两个来处理,可能截取半个汉字,那我们如何知道是否取的是汉字呢?是否把一个汉字取完整了呢?其实,可以用ByteType对取出来的字符进行判断是一个单字符还是汉字的一部分!mbLeadByte: 汉字的第一个字节mbTrailByte: 汉字的第二个字节mbSingleByte: 单个的字符,不是中文字符。如果Copy出来的是汉字的第一个字节,就再多(或少)Copy一个,凑成完整的汉字。如下例:function GetText(str
stma 阅读(169) |
摘要: 效果图初学delphi做个ascii转换工具,为在手工注入网站的时候做个辅助主要处理操作如下://ascii转换procedure TForm1.Button1Click(Sender: TObject);vari:Result, Code:a: array[0..10000]beginCode :='';Result:='';for i := 1 to length(edit1.Text) dobegin Code := edit1.T a[i - 1] := Code[i]; Result := R
stma 阅读(60) |
摘要: procedureTForm1.WMNCHitTest(varM:TWMNCHitTest);ifM.Result=htClientthenM.Result:=htC窗体拖动。转自:http://bbs.csdn.net/topics/
stma 阅读(38) |
摘要: 以下是引用片段:varhDesktop : THs :function EnumChidProc(h:THlp:DWORD):varcBuf : array[0..255]beginGetClassName(h,cBuf,255) ;if StrComp(cBuf,'SysListView32')=0 thenbeginhDesktop:=Result:= Result:=procedure TForm1.Button1
stma 阅读(462) |
摘要: 为了让人能快速的理解 静态调用、动态调用,现在做一个函数封装在一个DLL中,然后在APPLICATION form里面调用这个函数,这个函数处理两个数的和。用代码和图片说话:代码如下library Project1;{ Important note about DLL memory management: ShareMem must be thefirst unit in your library's USES clause AND your project's (selectProject-View Source) USES clause if your DLL export
stma 阅读(30) |
摘要: Function Chinese2UniCode(AiChinese:String):I Var ch,cl:String[2]; a:array[1..2]Begin StringToWideChar(Copy(AiChinese, 1, 2), @(a[1]), 2); ch := IntToHex(Integer(a[2]), 2); cl := IntToHex(Integer(a[1]), 2); Result := StrToInt('$' + ch + cl);//就是以上这个函数了,可以大家百度的时候已经看到它,但是有可以
stma 阅读(42) |
摘要: idhttp1.get('www.google.cn')时报 Invalid argument to date encode错误,如何解决。因为有些页面返回的头部信息中,没有Date字段,所以会这样,这是正常的,用try except end包起来就可以了,HTTP/1.1 200 OKDate: Thu, 19 Mar :39 GMT //就是少了这个,用截包软件很容易看到.Server: BWS/1.0Content-Length: 1809Content-Type: text/htmlCache-Control: privateExpires: Thu
stma 阅读(606) |
摘要: SDK文档里是这样描述的:进程是一个正在运行的程序,它拥有自己的地址空间,拥有自己的代码,数据和其他系统资源.一个进程包含了一个或者多个运行在此进程内的线程. 从定义上看出进程一定要有线程,线程是进程内存中的独立实体. 线程插入技术就是把一个线程弄到别的进程中执行的技术。远程线程插入代码之DLL注入技术:我们先编写个简单的DLL:library TestDusesW{$R *.res}procedure func_a;begin MessageBox(0,'I love delphi','Function form Tset DLL',0);
stma 阅读(83) |
摘要: 前几天写了一个跨进程在IE中执行脚本的工具:[img=http://p.blog.csdn.net/images/p_blog_csdn_net/zswang/IEScript.GIF]下载链接[/img]目前只知道在IE中如何跨进程执行JavaScript或VBScript但如何在Firefox中执行就没有头绪了。希望有人能提供点线索,路过也帮忙顶一下。提供完美解决方案者另给200专家分答谢。跨进程在IE执行脚本的步骤(具体实现自己搜吧)1、向IE窗体发送“WM_HTML_GETOBJECT”消息得到返回结果;2、通过“ObjectFromLresult()”API函数得到IHTMLDocu
stma 阅读(57) |
摘要: 开发的系统中的一个下载文件的功能,有一个API就可以搞定了,这个API就是UrlDownloadToFile。不仅如此,Delphi的一些控件也可以轻松实现下载,如NMHTTP,指定NMHTTP1.InputFileMode := 指定Body为本地文件名,指定Get就可以下载了。下面是详细代码:uses UrlM function DownloadFile(Source, Dest: string): B begin try Result := UrlDownloadToFile(nil, PChar(source), PChar(Dest), 0, nil)
stma 阅读(191) |
摘要: 给你一个思路:1、用WinExec、ShellExec或CreateProcess运行可执行程序。//这一步不用教了吧?2、用一个TIMER定时遍历该进程的可视窗体,并发送隐藏窗口的消息先将已动作的进程,取它的进程ID放到临时变量里。{做个枚举全部窗体用的}function Enum_ALL(Hw: HWND;lp: LPARAM): Bbegin if 进程ID变量=Inttostr(GetWindowThreadProcessId(HW)) then Begin If IsWindowVisible(Hw) And IsWindowEnabled(Hw) th
stma 阅读(68) |
摘要: var js: OleV str:begin js := CreateOleObject('ScriptControl'); // 创建组件 js.Language := 'JavaScript'; // 指定组件所使用的语言,也可以是VBScript js.AddCode(Memo1.Text); // 加入JS代码,如上面的代码 str := js.Eval('getTime()');// getTime() function from JS ShowMessage(str);//执行网页中的Js可以抄,
stma 阅读(69) |
摘要: delphi取汉字的机内码、UniCode码 //机内码 -& 汉字Function MacCode2Chinese(AiUniCode : Integer) : SVarch, cl : IBeginch := AiUniCode Div 256;cl := AiUniCode Mod 256;Result := Chr(ch) + Chr(cl);//汉字 -& 机内码Function Chinese2MacCode(AiChinese : String) : IVarch, cl : IBeginch := Ord
stma 阅读(132) |
摘要: //UniCode -& 汉字Function UniCode2Chinese(AiUniCode : Integer) : SVarch, cl : String[3];s : SBegins := IntToHex(AiUniCode, 2);cl := '$' + Copy(s, 1, 2);ch := '$' + Copy(s, 3, 2);s := Chr(StrToInt(ch)) + Chr(StrToInt(cl)) + #0;Result := WideCharToString(pWideChar(s));
stma 阅读(43) |
摘要: CoInitialize(LPVOID),它将以特定参数调用CoInitializeEx,为当前单元初始化COM库,并标记协同模式为单线程模式。参数必须为NULL。这是关于OLE和COM的问题。 CoInitializeEx(LPVOID),新版本,可以用参数指定协同模式,如多线程模式,但注意单元的协同模式是不能改的,如果在已经初始化为多线程的单元里初始化OLE将失败并返回RPC_E_CHANGED_MODE。每个线程只要调用一次初始化就够了,同一线程中的后续调用也将通过,但会返回S_FALSE。后面解除初始化调用要与本调用一一对应,返回S_FALSE的CoInitialize调用也计算在内。
stma 阅读(169) |
摘要: 我一般不使用cookiemanager控件用的是idhttp1.response.rawheaders.然后自己截取!INDY9要使用上边的方法!不过你的是INDY10不用获取COOKIE,直接在GET或POST后直接操作就行了,COOKIE自动附带进去了转自:http://www.uipower.com/bbs/thread--1.html/*-------------------------------*/获取post,或者get返回的cookie,除了过滤返回的字符串之外,最简单的方法是使用idhttp的CookieManager属性比如获得IDhttp返回的全
stma 阅读(466) |
摘要: 没说清楚,seltext是按照SelStart和SelLength来返回的,所以会出现字符串里面有几个中文字符,最后就会漏掉几位的情况,放心,delphi也会出bug的。
stma 阅读(209) |
摘要: 使用该结构NOTIFYICONDATA实现系统托盘图标都会存在一个问题:托盘图标不响应消息;这里给出关键的代码,即可简单解决这个问题const WM_BARICON = WM_USER+1000; //这段代码在type关键字前写上;public procedure WMBarlcon(var message:TMessage); message WM_BARICON; procedure WMSYSCommand(var message:TMessage); message WM_SYSCOMMAND;var Form1: TForm1;implementationprocedur
stma 阅读(193) |
摘要: IDHTTP 301 302 303 错误的解决方法这是因为你请求的网页进行了重定向(转跳到别的网页)操作解决方法:只要把IDHTTP.HandleRedirects设为True可以解决问题提示:然后可以DoRequest一下取到反馈信息,再从IdHTTP.Request中得到新的URL.原文网址:http://www.jydoc.com/article/282834.html
stma 阅读(248) |
摘要: /////// TDateTime = type D因此,直接比较即可:if Now & SetupDateTime then 迟到if Now = SetupDateTime then 正点if Now & SetupDateTime then 假装积极/*----------------------------------------*/不好意思,我以为你能看懂,所以就那样表述了。我重新规规矩矩地给你写了:但仍然是演示代码,不能就这样复制到你的应用软件里去:var SetupDateTime : TDateTprocedure TForm1.Button1C
stma 阅读(43) |
摘要: 主要是使用 LCMapString 函数 下面是delphi 例子你研究一下吧{简体转繁体[字符串]} function GBTOBIG5(PSource :string) : var SourceLength : TargetStr : begin SourceLength := Length(PSource) + 1; SetLength(TargetStr, SourceLength); LCMapString(GB_LCID, LCMAP_TRADITIONAL_CHINESE, PChar(PSource), SourceLeng...
stma 阅读(47) |
摘要: Delphi版:?procedure DrawWindowFrame(HWND:Thandle); //画闪烁边框var DeskHwnd:T DeskDC:HDC; oldRop2: rc:T newPen: oldPen:HGDIOBJ;begin DeskHwnd:=GetDesktopWindow();//取得桌面句柄 DeskDC:=GetWindowDC(DeskHwnd);//取得桌面设备场景 oldRop2:=SetROP2(DeskDC, R2_NOTXORPEN); GetWindowRect(hWnd, rc); //获得
stma 阅读(55) |
摘要: {$R*.dfm} varh:HWND; pt,p1:TP arr,arr1:array[0..254]ofC h1:HCURSOR; procedureTForm1.Image1MouseDown(Sender:TOButton:TMouseB Shift:TShiftSX,Y:Integer); begin Timer1.Enabled:=T Image1.Picture.LoadFromFile('02.bmp'); //h1:=LoadCursorFromFile('031.ico');//03
stma 阅读(126) |
摘要: 在程序中使用了IdHTTP的话,在执行Get或Post过程的时候,程序界面会无法响应,造成程序假死,但在任务管理器中又能看到程序正在运行。这是因为Indy系统组件都使用了阻塞式Sock,阻塞式Sock的缺点就是使客户程序的用户界面“冻结”。当在程序的主线程中进行阻塞式Socket调用时,由于要等待Socket调用完成并返回,这段时间就不能处理用户界面消息,使得Update、Repaint以及其它消息得不到及时响应,从而导致用户界面被“冻结”,就是常说的“程序假死”。解决办法有两种:1.在程序中放一个IdAntiFreeze控件,个人使用中发现把IdAntiFreeze控件的OnlyWhenId
stma 阅读(151) |
摘要: 在窗體先放二個richedit(按收信息框、發送信息框),然后再放一個memo(聊天記錄)屬性Visible設為false,Form的AutoSize設為true procedure TForm1.Button1Click(Sender: TObject);// 聊天記錄按紐 begin memo1.Visible:=not memo1.V 嘿,不知道這樣的效果能不能滿足樓主的需求~~转自:http://topic.csdn.net/t//3442962.html
stma 阅读(39) |
摘要: 问:我在edit里面添加的数据 想在listview里面显示出来 但是有一个问题就是我添加之后不能马上显示出来还要 我点击一下listview的滚动条才能在里面显示出来 我想问一下有没有好的方法在程序里面写一句话 来代替滚动条显示下一行答1:procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.Add(Edit1.Text); ListBox1.ItemIndex := Listbox1.Items.Count - 1;答2:procedure TForm1.Button1Cl...
stma 阅读(48) |
摘要: //取特殊文件夹目录 //---------------------------------------------------------------- function GetSpecialFolderDir(const folderid: integer): var pidl : pItemIDL buffer : array[0..255] begin SHGetSpecialFolderLocation(Application.Handle, folderid,...
stma 阅读(47) |
摘要: --------找到源码了unit Unit3;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,ComObj,SHDocVw,SHDocVw_TLB;const CLSID_ShellUIHelper: TGUID = '{64AB4BB7-111E-11D1-8F79-00C04FC2FBE1}';type TForm3 = class(TForm) Button1: TB procedure But
stma 阅读(52) |
摘要: const CLSID_ShellUIHelper:TGUID='{64AB4BB7-111E-11D1-8F79-00C04FC2FBE1}'; var p:procedure(Handle:THPath:PChar); procedureTForm1.OrganizeFavorite(Sender:Tobject); var H:HW begin H:=LoadLibrary(PChar('shdocvw.dll')); ifH&&0then begin p:=GetProcAd...
stma 阅读(48) |
摘要: Delphi中WebBbrowser的编程 http://www.360doc.com/content/07/7_426504.shtmlWebbrowser.ExecWeb(OLECMDID_FIND,OLECMDEXECOPT_DODEFAULT);//查找Webbrowser.ExecWeb(OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT);//保存 Webbrowser.ExecWeb(OLECMDID_ PROPERTIES, OLECMDEXECOPT_DODEFAULT);//查看属性Webbrowser.OleObj...
stma 阅读(114) |
摘要: 循环每一行,拿循环的当前行和全部行比较一下if Memo1.Lines[i].IndexOf(Memo1.Lines[j])&&-1 then //有重复转自:http://zhidao.baidu.com/question/.html
stma 阅读(764) |
摘要: http://blog.csdn.net/asciil/article/details/4355961//这里有关多线程的详细内容,很好!
stma 阅读(30) |
摘要: 找出一定的规律,把多余的字符替换掉就行了。参考: R := TRegExpr.C try R.ModifierI := T //这一行是大小写不敏感的属性设置。参考:http://bbs.cnpack.org/viewthread.php?tid=3144 R.Expression := '&style&.*?&/style&'; Memo1.text := R.Replace(Memo1.Text, '', False); R.Expression := '&script&.*?&/scri
stma 阅读(49) |
摘要: 正则表达式是个极其繁琐和强大的东西,小生才疏学浅,也不准备写正则表达式的教程,借着对这个单元的介绍,会有一些浅显且有用的例子。首先介绍的是这个单元的主角:TRegExpr类,这个类包括很多成员,这里仅简单的介绍一下一般匹配的过程。下面是一段在文本中提取邮件地址的代码:Procedure GetName(TextToCheck:SaList:TStringList);Var myExpr: TRegEbegin myExpr := TRegExpr.C Try myExpr.Expression := 'name=&(.*?)&&#39
stma 阅读(280) |
摘要: function StripHTML(S: string): var TagBegin, TagEnd, TagLength: begin TagBegin := Pos( '&', S); // 查找第一个& while (TagBegin & 0) do begin// 若S串中含有& TagEnd := Pos('&', S); // 查找匹配的 & TagLength := TagEnd - TagBegin + 1; Delete(S, TagBegin, TagLength); /
stma 阅读(97) |
摘要: interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtypeTForm1 = class(TForm)Button1: TBButton2: TBButton3: TBButton4: TBprocedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);procedure Button3Click
stma 阅读(74) |
摘要: var WebBrowser1: TWebB WebBrowser1 := TWebBrowser.Create(nil); WebBrowser1.ParentWindow := Panel_Main.H WebBrowser1.Silent := T WebBrowser1.Align := alC WebBrowser1.Width := Panel_Main.W WebBrowser1.Height := Panel_Main.H WebBrowser1.Visible := T WebBrowser1.Na.
stma 阅读(119) |
摘要: 在Form放置一个ApplicationEvents控件, 在OnMessage事件中写下面的代码:uses ActiveXprocedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);const StdKeys = [VK_TAB, VK_RETURN, VK_DELETE, VK_BACK]; { standard keys } ExtKeys = [VK_LEFT, VK_RIGHT]; { extended keys } fExtended = $; { extend.
stma 阅读(81) |
摘要: 如下代码即可解决uses Ainitializationoleinitialize(nil);finaliz
stma 阅读(44) |
摘要: 在Delphi 7下没有VC下方便的RES资源编辑器,有一个Image Editor,但是功能有限,且支持的格式少。除了可以借用VC的资源编辑器和其他工具,我们还可以手动制作资源文件。 每一个Delphi工程下,都有一个.res资源文件,这是保存应用程序图标等资源的文件。在工程项目文件里都有包含一个编译指令,可以在“Project”→“View Source”下查看。如下所示:13programProject1;usesForms,Unit1in'Unit1.pas'{Form1};{$R*.res}{代表程序编译后,会产生一个与
stma 阅读(88) |
摘要: 制作资源文件并释放运行TEST EXEFILE TEST.exe 把这段文字复制到个记事本里保存为TEST.rcTEST为在程序里调用资源文件的名字 就是给资源文件起个名字在程序里调用EXEFILE 为文件类型 意思是exe文件TEST.EXE 为你要做成资源的exe文件在写个批处理文件(BuildRes.bat)内容为 Brcc32 TEST.rc第一行是你delphi的安装目录下的bin目录下的Brcc32.exe的位置 因为要用brcc32.exe编译第二行的TEST.rc为 你刚才写的rc文件的文件名把以上两个文件和你要做成资源文件的exe放在一个目录下 执行批处理 这时候会多出 TE
stma 阅读(74) |
摘要: //获得文件列表function GetAllTextFile(Path,fext: string): TStringLvar f: TSearchR r: Ibegin Result:=TStringList.C if Path[Length(Path)]&&'\' then Path:=Path+'\'; r:=FindFirst(Path+fext, faAnyFile, f); while r=0 do begin Result.Append(f.Name); r:=FindNext(f) F
stma 阅读(33) |
摘要: 出处:http://www.cnblogs.com/huangygdelphi/articles/1969357.html通过显示一个对话框来让用户选择一个目录。注意:在使用前要在Uses 语句中添加包含FileCtrl 的说明。函数原型如下:function SelectDirectory(const Caption: const Root: WideSout Directory: string): Bfunction SelectDirectory(var Directory: Options: TSelectD
stma 阅读(64) |
摘要: Delphi 显示选择文件夹对话框 (有新建按钮) 附实例 //转自:http://kb.cnblogs.com/a/1409558/这篇文章连注解也没有,晕uses ShlObj选择文件夹对话框。入口参数:Handle:调用者句柄Caption:对话框标题InitFolder:初始文件夹;SelectedFolder:返回选择结果返回值:如果用户选择了路径并确定,返回True。并由SelectedFolder返回选择结果。否则返回False}截图:Code highlighting produced by Actipro CodeHighlighter (freeware)http://ww
stma 阅读(59) |
摘要: 在Delphi中,定位文件的操作主要有两种方法。一种是直接定位文件,即通过“打开”对话框(OpenDialog)控件来实现。另一种是只定位到文件夹,然后再在此文件夹内寻找文件,这种定位方法是利用Delphi提供的SelectDirectory函数。这个函数是在FileCtrl单元中定义的,因此在使用时不要忘记在Uses中加入单元名。 下面就以一个例子来说明这两种方法在Delphi中的具体实现: 首先建立一个新的工程,然后在窗体上加入两个按钮控件、一个“打开”对话框,再加入两个标签控件作为两种实现结果的存储控件。 各个控件的主要属性设置如下: Button1中: Captio...
stma 阅读(2754) |
摘要: 原理分析: 互斥对象是系统内核对象, 各线程都可以拥有它, 谁拥有谁就能执行; 执行完毕, 用 ReleaseMutex 函数释放拥有权, 以让其他等待的线程使用. 其他线程可用 WaitForSingleObject 函数排队等候(等候也可以理解为排队申请). 使用过程:var hMutex: TH {应该先声明一个全局的互斥句柄}CreateMutex {建立一个互斥对象}WaitForSingleObject {用等待函数排队等候}ReleaseMutex {释放拥有权}CloseHandle {最后释放互斥对象} ReleaseMutex、...
stma 阅读(137) |
摘要: 有一个Form1,里面有image1和webBrowser1,我用WebBrowser1连接到一个有验证码的网页,想把里面的图片提取到image1里,应该怎么做?问题补充:我指的是图片。例如:http://china.alibaba.com/member/join.htm验证码的地址是: http://checkcode.china.alibaba.com/service/checkcode?sessionID=e9EgR8RbEt2F8k68tQGjCKJ9NZnf8%24cS那里的图片是每次都变化的。我需要的是把WebBrowser里显示的验证码加载到TImage的对象里。下面的图像如果看
stma 阅读(412) |
摘要: 这个问题来自论坛提问,示例代码如下,主要是要了解Document对象 //------这个论坛居然不支持delphi代码样式unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw, StdCtrls,type TForm1 = class(TForm) WebBrowser1: TWebB Button1: TB Memo1: TM proc...
stma 阅读(78) |
摘要: 改编自:http://www.cnblogs.com/del/archive//1261580.htmlfunction RunJs(const JsCode, JsVar: string):var script: OleVbegin try script := CreateOleObject('ScriptControl'); script.Language := 'JavaScript'; script.ExecuteStatement(JsCode); Result := script.Eval(JsVar
stma 阅读(84) |
摘要: 摘 要:使用ActiveX Scripting技术,可以在应用程序中集成使用脚本语言。本文介绍如何应用这一技术在Delphi应用程序中添加VBScript支持。关键词:ActiveX脚本描述;Delphi;VBScript1.引言 Delphi语言是Borland公司开发的一种功能强大的编程语言,它基于串口和面向对象,并兼有VC的强大功能和VB的快速开发、易学易用的优点,具有开发效率高、界面制作美观方便、可实现各种操作功能等特点。VBS全称Visual Basic Script,是一种简单易学,功能强大的脚本语言,应用极为广泛。本文介绍了通过ActiveX Scripting技术在Delph.
stma 阅读(1023) |
摘要: 问题来源: http://www.cnblogs.com/del/archive//1256669.html#1272732源码下载: http://files.cnblogs.com/del/Dephi-JavaScript.rar本例测试用的 Html 文件(包含三个要测试的 Js 函数):本例效果图:代码文件:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls..
stma 阅读(49) |
摘要: 出处:http://www.aau.cn/thread-.html//提供了于个新的思路,很有价值的贴子!!今天晚上天气清凉,万里航空,到处都是星星。。。。。。之后就请教游戏找个 POST 的 数据,是加密的,进入正题!网站地址:(非广告,让大家自己尝试记忆才深刻)http://bbs.duowan.com/logging.php?action=login(抓包工具 HttpWatch) 打开抓包监视,随便填写 用户名和密码,点提交,如下图: POST抓到的流的数据为formhash=1187cd59&referer=index.php&loginfield=u
stma 阅读(234) |
摘要: 假如网页中有这样的语句:&script&varstr = &Hello&;i = 99;&/script&//读取网页脚本中的变量:procedure TForm1.Button1Click(Sender: TObject);vars:i: Ibegins := WebBrowser1.OleObject.document.Script.i := WebBrowser1.OleObject.document.Script.ShowMessage(s); //HelloShowMessage(IntToSt
stma 阅读(101) |
摘要: delphi TScriptControl 相关 以下的代码给我也不知道怎么用。。。。晕 但是还是有价值的,先保留!http://www.koders.com/delphi/fid0D20D82FDA39F3CE148CB37F74669C7.aspx
stma 阅读(99) |
摘要: Delphi程序中运行JavaScript脚本代码微软Windows操作系统中有一个叫ScriptControl的OCX组件利用这个组件,可以在自己的程序中运行JavaScript或VBScript这两种脚本代码使用很简单,新建一个工程,在窗体中放一个Button1控件在Button1控件的Click事件中写代码如下:procedure TForm1.Button1Click(Sender: TObject);varjs:OleVbeginjs:=CreateOleObject('ScriptControl');//创建组件js.Language:='Ja
stma 阅读(128) |
摘要: function StrPosCount(subs:source:string):var Str :begin Result := 0; str := while Pos(Subs,Str)&&0 do begin Delete(Str,Pos(Subs,Str),Length(Subs)); Inc(Result);转自:http://zhidao.baidu.com/question/.html
stma 阅读(58) |
摘要: //这是一个控制台程序;procedure A var str,s,s1,s2: pstr:pCbegin str := ';; s := IntToHex(Integer(@str),8); //如果要输出地址,需要把地址强制转换为整形才可以输出;相对于这方面vc++直接就可以输出屏幕了 s1 := IntToHex(Integer(@str[1]),8); s2 := IntToHex(Integer(@str[2]),8); Writeln(s); Writeln(s1); Writeln(s2);begin Writeln
stma 阅读(68) |
摘要: 调用一个DLL比写一个DLL要容易一些。首先给大家介绍的是静态调用方法,稍后将介绍动态调用方法,并就两种方法做一个比较。同样的,我们先举一个静态调用的例子。unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtype TForm1 = class(TForm) Edit1: TE Button1: TB procedure Button1Click(Sender: TObject); private { Priv
stma 阅读(1759) |
摘要: delphi之调用外部dll中的函数分早绑定和晚绑定两种方法:http://wenku.baidu.com/view/2efe.html
stma 阅读(50) |
摘要: inherited就是调用祖先类的函数,如果不带参数就是默认调用同名函数如果带参数则表明子类中的函数个数可能比祖先类要多取其中的几个参数传过去例如祖先类有个函数 Create(AName:string);子类有个函数 Create(AName:AComponent:TObject);那么子类的Create函数内就可以这样调用祖先类:procedure TAClass.Create(AName:AComponent:TObject);begin Inherited Create(AName);转自:http://zhidao.baidu.co
stma 阅读(2986) |
摘要: 接口 对于Object Pascal语言来说,最近一段时间最有意义的改进就是从Delphi3开始支持接口(interface),接口定义了能够与一个对象进行交互操作的一组过程和函数。对一个接口进行定义包含两个方面的内容,一方面是实现这个接口,另一方面是定义接口的客户。一个类能实现多个接口,即提供多个让客户用来控制对象的“表现方式”。 正如名字所表现的,一个接口就是对象和客户通信的接口。这个概念像C++中的PUREVIRTUAL类。实现接口的函数和过程是支持这个接口的类的工作。 在这里你将学到接口的语言元素,要想在应用程序中使用接口,请参考COM和ActiveX方面的资料; 1.定义接口 就像所
stma 阅读(122) |
摘要: 花了两个小时做完了DELPHI中的数据集导入到EXCEL中的问题,在使用中要添加OleServer,控件使用DELPHI自带的Severs下的ExcelApplication,ExcelWorkbook,ExcelWorksheet三个控件。其中所有的变量都可以自定义,包括文件路径的保存,文件名字的设置,EXCEL中字体的大小,行宽列高等。在添加数据集的过程中,注意自身的循环和数据的对应关系即可。unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
stma 阅读(92) |
摘要: 单元接口部分引用 comobj 单元(uses )procedure TForm1.Button1Click(Sender: TObject);var excelx,excely :begintryExcelApp := CreateOleObject('Excel.Application');WorkBook := ExcelApp.WorkBooks.Open(opendialog.FileName);//使用opendialog对话框指定//excel档路径ExcelApp.Visible :=ExcelRowCount := WorkBoo
stma 阅读(82) |
摘要: 1、在单元文件加入ComObj,创建 Excel 表格, var ExcelID: V ExcelID := CreateOleObject( 'Excel.Application' ); 这样就创建一个excel application 实例2、添加新工作簿: ExcelID.WorkBooks.A 添加默认数量的工作簿3、设置第1个工作表为活动工作表: ExcelID.WorkSheets1].A 或 ExcelID.WorkSheets[ 'Sheet1' ].A 设置活动工作表后,就可以在活动工作表中添
stma 阅读(51) |
摘要: 目前的QQ2011版本中,其登陆界面上除了QQ号输入框和密码输入框,其他的的按钮都是绘图绘上去的,均无窗口句柄。QQ登录窗口的窗口类为'TXGuiFoundation',窗口标题为'QQ2011'。QQ账号输入框的窗口类为'TXEdit',窗口标题为空,密码输入框的窗口类为'Edit',窗口标题是动态的'A~Z'。由于登陆界面的【登录】按钮无窗口句柄,因此无法向按钮发送消息,由此猜想其界面的所有操作均是通过特定消息来操作的。但是向登录窗口发送WM_LBUTTONDOWN和WM_LBUTTONUP消息来模拟鼠标点击登
stma 阅读(407) |
摘要: //以下是部分代码,更详尽:http://zhidao.baidu.com/question/.htmlunit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtype TForm1 = class(TForm) Button1: TB procedure FormClose(Sender: TO var Action: TCloseAction); pr
stma 阅读(46) |
摘要: procedure TForm1.btn1Click(Sender: TObject); var List:TListIbegin lv1.Columns.Add.Caption := 'ID'; lv1.Columns.Add.Caption := 'User'; lv1.Columns.Add.Caption := 'PassWord'; lv1.Columns.Add.Caption := 'Start'; //添加三列,或者叫三柱; lv1.Items.Add.Caption := '1'; //添
stma 阅读(79) |
摘要: try ... excetpt on e:Exception do 中的 E 是哪里来的?凭空出来的?怎么没在帮助里面找到说明?E是继承某个类么?这里只有 E.MESSAGE,答案摘要:你说的e, 就好像 var I: 一样,声明一个变量而已 你当然可以 on abc: exception 也可,目的是声明一个 exception 变量转自:http://topic.csdn.net/t//4357712.html
stma 阅读(62) |
摘要: Idhttp 验证码登录 常规的操作应该没什么难度,如果是验证码呢?我只贴出关键的代码,其实也不是很复杂。但是网络上就是没有这方面的教程。//第一步:获取验证码,代码如下:procedure TForm1.btn2Click(Sender: TObject); var Jpg:TJPEGI Memory:TMemorySbegin Jpg := TJPEGImage.C Memory := TMemoryStream.C idhtp1.Get('这里是验证码的网址,在验证码图片上单击右键复制图像地址',Memory); Memory
stma 阅读(134) |
摘要: {如果Get验证码完成后要获取Cookie 就这样做:idhtp1.Response.RawHeaders.GetT //关键行idhtp1.Response.RawHeaders.T//都是一样的效果;或者 idhtp1.CookieManager.CookieCollection.Items[0].CookieText 但是后者通常都会出错。应该还需要添加idCookieManager控件与idhttp关联。}{403错误:服务器要判断浏览器类别在GET之前,先指定UserAgent参数就行了.Request.UserAgent := 'Mozilla/4.0 (c
stma 阅读(77) |
摘要: procedure TForm1.btn1Click(Sender: TObject);var Http:TIdHTTP;begin Http := TIdHTTP.Create(nil); Http.ProxyParams.ProxyServer := '91.211.141.249'; //代理IP Http.ProxyParams.ProxyPort := 8080; Http.ProxyParams.ProxyUsername := ''; Http.ProxyParams.ProxyPassword := ''; //百度和GG屏蔽了i
stma 阅读(709) |
摘要: procedure TForm1.WebBrowser1NewWindow2(Sender: TO var ppDisp: ID var Cancel: WordBool);beginCancel:=WebBrowser1.Navigate (NewURL);其中的NewURL是你在网页中点击的链接,它的值在以下事件中取得:procedure TForm1.WebBrowser1StatusTextChange(Sender: TO const Text: WideString);beginNewURL :=转自:ht
stma 阅读(73) |
摘要: baidu一下有很多啊 下面是我参考网上程序写的 delphi的 希望能帮到你 {执行命令行程序------------------------------}procedurecommond_ex(); constnum_read=256; var hReadPipe,hWritePipe:TH si:STARTUPINFO; lsa:SECURITY_ATTRIBUTES; pi:PROCESS_INformATION; cchReadBuffer:DWORD; ph:PC fname:PC Apprunning:D L begin En
stma 阅读(96) |
摘要: GetProcAddress(Hinstance,lpname)用来获取指定的动态连接库函数的地址 Hinstance为由LoadLibrary返回的模块句柄,lpname为文件名/函数名,返回值,成功返回动态连接库的地址,失败返回NULL, FreeLibrary(Hinstance),Hinstance为由LoadLibrary返回的模块句柄,功能是:释放动态连接库! 动态引入方式就是使用Windows的两个API即LoadLibrary和GetProcAddress,前者用于获得DLL的句柄,后者用于获得DLL 中例程的地址,这种方式之所以被称为动态的,是因为它不需要在程序的开始处把要引
stma 阅读(3332) |
摘要: procedure DomImg2Image(src:wb:TWebBimg:TImage);var i:I rang:IHTMLControlRbegin for i:=0 to IHTMLDocument2(wb.Document).images.length-1 do if Pos(src,(IHTMLDocument2(wb.Document).images.item(i,EmptyParam)as IHTMLElement).getAttribute('src',0))&0 then begin rang:=(
stma 阅读(1345) |
摘要: Private 该类型的成员只能在声明类中被访问 Public 该类型的成员可以被程序中的任何地方的代码访问 Protected 该类型的成员只能在声明类以及声明类的派生类中被访问转自:http://www.zaoxue.com/article/tech-25863_2.htm
stma 阅读(31) |
摘要: /*type 是定义类型var 是声明变量*/function Abc(i:integer):begin Result := 'a';/*定义函数*/procedure TForm1.btn1Click(Sender: TObject); type pfun = function(i:Integer): //定义函数指针 var p: //声明函数指针变量begin p := A //函数的名称就是函数在内存中的地址,也可以说成函数指针。 ShowMessage(p(3));/*定义函数指针的格式:type pfun
stma 阅读(49) |
摘要: 这是一篇关于插入HTML和执行脚本的方法。 先看代码:关键代码{ 在 WebBrowser 内执行脚本 用法: Memo1.Lines.add('alert(&Hello World!&);'); ExecuteScript(WebBrowser1, Memo1.Lines, 'javascript'); }procedure TfrmSavePages.ExecuteScript(aWebBrowser: TWebB lScript: TS language: String = 'javascript&#
stma 阅读(133) |
摘要: 1.拖入TIdHTTP控件,HandleRedirect设为True,否则可能会出现HTTP 307错误。2.主要的设置在Request里。2.1 userAgent应该改为Mozilla/4.0 ( MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; CIBA; MAXTHON 2.0)2.2 如果Accept-Encoding设为了gzip, deflate,那么需要再解码,所以如果没有必要的话Accept-Encoding应该设为空。2.3 Referer应该设为post之前那个页
stma 阅读(75) |
摘要: 在WebBrowser中执行一个脚本,如javaScript,通称调用IHTMLDocument2接口的ExecScript方法,示例:procedure ExecuteScript(aWebBrowser: TWebB lScript: TS language: String = 'javascript');varHTDoc: IHTMLDocument2;beginHTDoc := (aWebBrowser.Document as IHTMLDocument2);if (HTDoc && nil) thenbegin if HTDoc
stma 阅读(251) |
摘要: 以前不管是做什么软件,只要是关于网页post提交cookie的,我都是用TcpClient,为什么呢?因为我一直找不到idhttp提交Cookie的方法

我要回帖

更多关于 555计时器制作函数发生器 的文章

 

随机推荐