Delphi
文章平均质量分 69
chinajobs
这个作者很懒,什么都没留下…
展开
-
NativeXML的应用
使用 CreateName 建立可直接指定根节点的名称varXmlDoc: TnativeXml;Node:TxmlNode; Begin XmlDoc := TNativeXml.CreateName('Data'); //创建根节点的语法 XmlDoc.XmlFormat := xfReadable;转载 2015-04-10 10:56:15 · 1004 阅读 · 0 评论 -
DELPHI 线程池代码
unit uThreadPool;{ aPool.AddRequest(TMyRequest.Create(RequestParam1, RequestParam2, ...)); }interface uses Windows, Classes;// 是否记录日志 // {$DEFINE NOLOGS}type TCritica转载 2015-04-10 08:42:03 · 877 阅读 · 0 评论 -
Delphi 的内存操作函数-1,2,3,4
[ 1 ]: 给字符指针分配内存马上能想到的函数有: ________________________________________GetMemAllocMemReallocMemFreeMemGetMemoryReallocMemoryFreeMemoryNewDisposeNewStrDisposeStrStrNew转载 2015-04-10 10:53:33 · 652 阅读 · 0 评论 -
Delphi的三层开发初学经验
近日闲来无事,看了写有关Delphi的书,发现有关三层的书都一样简单略过,网上搜索了一下也是零零碎碎,经过简单实验测试了一下内容。 在数据库开发方面Delphi相对于其他众多开发工具其优势在于灵活快速,且十分稳定。本实例使用Remote Data Module(远程数据模块)创建。服务端: 首先让我们来编译服务器端,打开Delphi7, 选择File菜单,New -> application,创转载 2015-04-10 14:13:36 · 1686 阅读 · 0 评论 -
Delphi三层实例
所谓三层:(1)客户端(2)服务器端(3)数据库 在数据访问时,使得客户端必须通过服务器来访问数据库。提高了系统的安全性。在Delphi中可以使用Socket或者Dcom来连接他们相互间的通讯。如果使用Scocket在系统使用时必须提供Scocket连接器,而Dcom则不用。客户端和服务器的连接需要Broker来联系。环境为winxp sp2 + delphi 7 + db7.(M转载 2015-04-10 14:15:04 · 3231 阅读 · 0 评论 -
BusinessSkinForm汉化文件“bsconst.pas”
{*******************************************************************}{ }{ Almediadev Visual Component Library转载 2015-04-10 16:46:27 · 779 阅读 · 0 评论 -
Delphi使用NativeXml访问XML文件
1.创建XML文件var Doc: TNativeXml;//声明上下文对象var filepath:string;//文件路径DOC:=TNativeXml.CreateName('root');Doc.EncodingString:='gb2312';DOC.XmlFormat:=xfReadable;DOC.SaveToFile(filepath);2.创建新转载 2015-04-10 10:54:26 · 4413 阅读 · 0 评论 -
什么叫回调函数?
回调函数是应用程序提供给Windows系统DLL或其它DLL调用的函数,一般用于截获消息、获取系统信息或处理异步事件。应用程序把回调函数的地址指针告诉DLL,而DLL在适当的时候会调用该函数。回调函数必须遵守事先规定好的参数格式和传递方式,否则DLL一调用它就会引起程序或系统的崩溃。通常情况下,回调函数采用标准WindowsAPI的调用方式,即__stdcall,当然,DLL编制者可以自己定义调用转载 2015-04-10 17:33:00 · 458 阅读 · 0 评论 -
Tobject 类解析
TObject = class //创建 constructor Create; //释放 procedure Free; //初始化实列 class function InitInstance(Instance: Pointer): TObject; //清除实列 procedure CleanupInstance;转载 2015-04-08 11:07:02 · 428 阅读 · 0 评论 -
Delphi皮肤资源网站收集
http://www.almdev.com/http://www.vclskin.com/ http://www.sunisoft.com/原创 2015-07-08 15:54:33 · 750 阅读 · 0 评论 -
Delphi7 中使用FastMM
Delphi7 中使用FastMM 在工程的第一行引用FastMM4即可(注意,一定要在第一个Uses的位置),可以在调试程序时提示内存泄露情况,还可以生成报告。在Delphi2007以后版本中,使用更加简单,只需要在工程开始的位置加上语句:ReportMemoryLeaksOnShutdown := True;就可以了,并且在运行时不会出现提示。如果想要生成文件报告,还需要FastM转载 2015-07-04 01:12:53 · 1009 阅读 · 0 评论 -
FastMM使用方法总结
配置步骤:1、把BorlndMM.dll和FastMM_FullDebugMode.dll拷到应用程序可执行程序存放的目录。2、在项目文件uses ShareMem和FastMMDebugSupport.pas。3、可以在FastMM4Options.inc中设置一些选项,例如是否生成报表:EnableMemoryLeakReporting (undefine or define)原创 2015-07-04 10:46:08 · 1715 阅读 · 0 评论 -
如何调试delphi自带的源代码
IDE "Project"菜单上的 “options”,选中"Compiler "页,"Debugging"的"Use Debug DCUs"选项,在跟踪程序的时候,就可以跟踪进入模块了。这样,涉及到全体都会,跟踪编译。转载 2015-07-06 11:40:22 · 891 阅读 · 0 评论 -
Delphi New,Getmem,ReallocMem联系与区别
转自博客园http://www.cnblogs.com/jsrgren/archive/2011/10/31/2270353.htmlprocedure New(var P: Pointer); {为一个指针变量分配内存,会自动计算指针所指数据结构需要空的空间大小}procedure GetMem(var P: Pointer; Size: Integer); {分配一个指定大小转载 2015-08-17 12:35:24 · 511 阅读 · 0 评论 -
TList的Sort使用方法
有网友提问,做一Demo,以作记录。unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Math;type P_MissInfo = ^MissInfo; M转载 2015-08-17 12:30:56 · 1239 阅读 · 0 评论 -
delphi 获取网卡信息(支持多网卡)
unit LGetAdapterInfo; interface usesWindows, SysUtils, Classes; constMAX_HOSTNAME_LEN = 128; { from IPTYPES.H }MAX_DOMAIN_NAME_LEN = 128;MAX_SCOPE_ID_LEN = 256;转载 2015-09-07 10:36:12 · 3570 阅读 · 0 评论 -
线程中CreateEvent和SetEvent及WaitForSingleObject的用法
首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,程锁定方面.CreateEvent函功能描述:创建或打开一个命名的或无名的事件对象.EVENT有两种状态:发信号,不发信号。 SetEvent/ResetEvent分别将EVENT置为这两种状态分别是发信号与不发信号。WaitForSingleObject()等待,直到参数所指定的O转载 2015-10-07 16:53:06 · 350 阅读 · 0 评论 -
获取网页的源码
function MyHttp_Get(const strUrl: string;var Options :THttpOptions; hWin: HWND=0): TRESULT;const BUFFER_SIZE=1024;var i :Integer; hInternetOpen ,hInternetConnect ,hHttpOpenRequest :HIN转载 2015-10-08 20:56:10 · 633 阅读 · 0 评论 -
Delphi ListView基本用法大全
Delphi ListView基本用法大全//增加项或列(字段)ListView1.Clear;ListView1.Columns.Clear;ListView1.Columns.Add;ListView1.Columns.Add;ListView1.Columns.Add;ListView1.Columns.Items[0].Caption:='id';转载 2016-01-18 15:48:17 · 983 阅读 · 0 评论 -
EJunGrid使用总结
1 1。0版没有实现垂直方向上的对齐,procedure TOBGUI_ReportDesign.gridDrawCellText(ACanvas: TCanvas; const ARect: TRect; const ACoord: TPoint; AGrid: TZJGrid; const Text: String; var ADefault转载 2016-01-22 10:46:58 · 1685 阅读 · 0 评论 -
Delphi中如何获得光标
就是我想在程序中使光标所在的文本框标一个颜色,当光标一走的时候又回到原来的颜色可以截获WM_SETFOCUS、WM_KILLFOCUS消息:type TForm1 = class(TForm) Memo1: Edit; private procedure WMSetFocus(var Msg: TMessage); message WM_SETFO转载 2016-02-05 14:23:31 · 2122 阅读 · 0 评论 -
DateTimePicker 控件出现 "You must be in ShowCheckbox mode to set to this date" 的错误
今天碰到了这个错误,去网上查了一下,解释五花八门,看了一下似乎都不是真正原因。无奈之下只能自己摸索了了。后来看了一下,这个问题非常简单,和数据库什么的一点关系都没有,是一个很纯粹的控件问题。首先,在出错的时候发现操作系统发了一个消息并且调用了这个函数 TCommonCalendar.SetDate(0),在Delphi的ComCtrls单元可以找到 procedure TC转载 2016-01-29 16:32:39 · 1370 阅读 · 2 评论 -
编写应用程序消息
procedure AppOnMessage(var Msg: TMsg; var Handled: Boolean);procedure Tfmformname.AppOnMessage(var Msg: TMsg; var Handled: Boolean);var a:Cardinal; i: SmallInt; WMD: TWMDropFile原创 2016-02-10 17:24:34 · 376 阅读 · 0 评论 -
MD5函数
unit untArith;interfaceuses Windows, SysUtils, Variants, Classes;type MD5Count = array[0..1] of DWORD; MD5State = array[0..3] of DWORD; MD5Block = array[0..15] of DWORD;转载 2016-02-12 22:37:57 · 581 阅读 · 0 评论 -
多种语言实现Base64编码解码
由于长度限制,上篇《网络信息传输编码解码》只介绍了编码解码的原理,本篇将把c#,vc,vb,delphi,php,python,asm 等语言的程序代码列于此,有些是从网上搜来的,供大家参考: 一。系统自带函数:1.c# //base64 编码 解码 系统函数 //编码 byte[] bytes = Encoding.Default.GetBytes("要转转载 2016-02-13 13:35:01 · 2158 阅读 · 0 评论 -
改变数据库表的显示文本
最简单的办法,就是在数据表中相关字段的OnGetText中写代码如下:procedure TForm1.ClientDataSet1dfdfdGetText(Sender: TField; var Text: string; DisplayText: Boolean);begin if Sender.AsInteger = 0 then Text := '没用完'转载 2016-02-01 11:07:56 · 439 阅读 · 0 评论 -
delphi 更改DBGrid 颜色技巧
1、根据条件更改某一单元格的颜色[delphi] view plain copyprocedure TMainFrm.First_DGDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TG转载 2016-02-01 11:10:57 · 562 阅读 · 0 评论 -
Delphi中如何拦截键盘消息
var st,et,ct: int64;procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);begin QueryPerformanceCounter(et); QueryPerformanceFrequency(ct); if ((et-st)/ct key:=chr(0);转载 2016-02-17 19:55:09 · 3951 阅读 · 0 评论 -
在Dephi中使用TStream读写数据的技巧
在Dephi中提供了一个抽象的数据类型TStream来支持对流式数据的操作。这些数据通常来自文件、数据库、内存对象、OLE对象等,TStream提供了统一、简洁的方法来进行数据的读写。在通常情况下,我们并不需要直接使用TStream类,对流式数据的读写封装在VCL控件的方法中。但是如果这些方法无法满足我们的要求,就需要自己手动控制数据的读写。 一、 TStream的常用的方法和属性:1转载 2016-02-20 22:29:59 · 2363 阅读 · 0 评论 -
Delphi 的类型与指针[1]
先声明: 不要把我说的这些个东西当作教科书, 这都是自己的浅见; 同时希望得到指正.Delphi 的指针分为 "类型指针" 和 "无类型指针" 两类.Delphi 中的类型, 常用的也得有几百个, 我们可以给每种类型定义相应的类型指针.其实 Delphi 已经为很多类型预定义了指针, 譬如数据类型: Integer 有对应的 PInteger;Char 有对应的 PChar转载 2016-02-21 01:58:56 · 945 阅读 · 0 评论 -
Delphi TreeView遍历所有节点问题
Delphi TreeView遍历所有节点问题遍历出TREEVIEW的所有完整的节点名称请出能实现这个功能的有效代码procedure aa(s:string;aItem:TTreeNode);var node:TTreeNode; str:string;begin node:=aItem;转载 2016-02-22 16:42:00 · 3426 阅读 · 0 评论 -
在delphi如何把TADOQuery.ParamCheck
就是说delphi编程者经常遇到的问题,总是出现‘不正常的定义参数对象,提供了不一致或者不完整的信息。。。‘这类的问题:implementation{$R *.dfm}procedure TForm5.Button1Click(Sender: TObject);varkhbh:string;beginADOQuery1.ParamCheck:=false;khbh:=edit转载 2016-02-23 11:04:36 · 1605 阅读 · 0 评论 -
delphi7 手动安装 indy10.2.3
1.windows的path路径中增加D7的路径在启用delphi7时,要能加载dclIndyCore70.bpl这个文件如果是自动安装,这个文件会拷到C:/windows/system32/dclIndyCore70.bpl,所以不用改path2.delphi7菜单中Library路径中添加indy10/LIB路径下的System、Core、Protocols下的三个目录转载 2016-04-02 15:14:14 · 2628 阅读 · 0 评论 -
Delphi中Indy 10的安装和老版本的卸载
Indy 10的安装和老版本的卸载Indy 10下载地址:http://www.indyproject.org/downloads/10/indy10.0.52_source.zipIndy 10 安装步骤1、解压压缩包。 2、打开\System\IndySystem70.dpk,点Compile。 3、打开\Core\IndyCore70.dpk,点Com转载 2016-04-02 15:18:50 · 4258 阅读 · 0 评论 -
delphi7的Application.ProcessMessages作用
application.ProcessMessages的主要作用使程序在循环时能够相应外界事件。一般情况下,程序在循环的时候不响应外界事件。直到循环结束为止才能接受和响应外界事件。application.ProcessMessages可以有效的解决循环循环的独占问题,能够暂时中断应用程序的执行。比如,你要设计一个计算,这个计算需要循环10000次。当循环开始到500次的时候,用户突然不想计算下去了转载 2016-04-04 10:18:59 · 2131 阅读 · 0 评论 -
Application.ProcessMessages
Application.ProcessMessages的作用是让Application去处理消息队伍中的消息。举例说明它的用处:你有一程序,要做一循环,for i:= 0 to query1.recordcount-1 dobegin做某事;endl;运行的时候你会发现,当转到另一程序再转回来的时候,窗体变发白了,除了那个DBGRID。这是为什么,这是因为当你转回自转载 2016-04-04 10:20:10 · 1026 阅读 · 0 评论 -
字符串存成excel表范例
var Files, FileCon, Emails, Recs: TStrings; i,j,typeid, startIndex: Integer; filename, OneRec: string; TextStr, username,realname, phone, email, xlsFileName: string; eclApp, W原创 2016-04-04 19:02:43 · 667 阅读 · 0 评论 -
该死的clear 根本不释放内存,怎么才能释放泛型LIST的内存?
程序的内存一直不停的涨,用其他工具也查了有泄露但是是定位到进程创建的时候,总觉得很奇怪后来查了资料delphi的clear对内存是不释放的因为我的程序在调用的很多 过程冲不断的clear,数据要不断的更新clear的都是 tstringlist ,还有很多的结构体泛型的list,里面有string类型的,查看内存的时候 发现里面的内存一直不停的增长。问题是这样的1 对于 tst转载 2016-04-05 19:37:46 · 18469 阅读 · 1 评论 -
"Key Violation" with ClientDataSet
产生问题的根源是Provider会自动获取数据库中的primerkey,到前台ClientDataSet中做验证。有的时候我们并不需要再前台验证,或者当SQL过于复杂的时候,它并不能正确产生primerkey的验证逻辑。修改方式有二:1.这个问题在于datasetprovider (tdatasetprovider)在中间层打包数据时,把数据约束(例如 主键)的信息也打包进去,然后到了转载 2016-03-23 17:07:05 · 1341 阅读 · 0 评论 -
delphi三层结构常出现的问题和解决方案
以下问题出现原因有可能多个,暂时将我遇见的记录下来,以后有新的在陆续更新上去,有网友愿意的话也可以共同测试一下。一,无法更新定位行。一些值可能已在最后一次读取已更改。错误出现前提:1, 录数据时,没有输或忘记输一些列就保存,之后重新修改记录,输入这些值后保存出现错误。2, 多个人同时修改记录,后保存的几个人会出现。分析原因:1, 这种错误通常在数据库转载 2016-03-24 19:29:44 · 816 阅读 · 0 评论