
Delphi资料
文章平均质量分 72
赛志工作室
专业优化企业生产管理流程,开发企业信息管理系统。
展开
-
delphi cxgrid 使用方法
<br />delphi cxgrid 使用方法<br />1.绑定数据<br />方法<br />cxGrid1DBTableView1.DataController.DataSource:=DataSource1<br />2.去掉"Drag a column header here to group by that column"<br />方法<br />cxGrid1DBTableView1.OptionsView.GroupByBox置为False<br />原创 2010-12-07 09:07:00 · 907 阅读 · 0 评论 -
FastReport的使用
<br />一、使用TfrxReport 组件工作<br />1、加载并存储报表<br />默认情况下,报表窗体同项目窗体构存储在同一个DFM文件中。多数情况下,无须再操作,因而你就不必采用特殊方法加载报表。如果你决定在文件中存储报表窗体或者是数据库的<br />Blob字段(他提供了非常大的弹性,你能够在非编译程序中修改),你必须使用“TfrxReport”提供的加载和存储方法。<br />function LoadFromFile(const FileName: String; ExceptionIfN原创 2011-01-24 10:07:00 · 1109 阅读 · 0 评论 -
delphi7找不到TBDEClientDataSet控件的解决方案
<br />unit BDEClientDataSet;<br />interface<br />uses Windows, SysUtils, Variants, Classes, DB, DBCommon, Midas, <br />SqlTimSt, DBClient, DBLocal, Provider, DBTables;<br /><br />type<br />{ TBDEQuery }<br /> TBDEQuery = class(TQuery)<br /> private<br />原创 2011-01-24 09:44:00 · 742 阅读 · 0 评论 -
FastReport的使用
<br />一、使用TfrxReport 组件工作<br />1、加载并存储报表<br />默认情况下,报表窗体同项目窗体构存储在同一个DFM文件中。多数情况下,无须再操作,因而你就不必采用特殊方法加载报表。如果你决定在文件中存储报表窗体或者是数据库的<br />Blob字段(他提供了非常大的弹性,你能够在非编译程序中修改),你必须使用“TfrxReport”提供的加载和存储方法。<br />function LoadFromFile(const FileName: String; ExceptionIfN原创 2011-01-24 10:08:00 · 922 阅读 · 0 评论 -
FastReport的使用
<br />一、使用TfrxReport 组件工作<br />1、加载并存储报表<br />默认情况下,报表窗体同项目窗体构存储在同一个DFM文件中。多数情况下,无须再操作,因而你就不必采用特殊方法加载报表。如果你决定在文件中存储报表窗体或者是数据库的<br />Blob字段(他提供了非常大的弹性,你能够在非编译程序中修改),你必须使用“TfrxReport”提供的加载和存储方法。<br />function LoadFromFile(const FileName: String; ExceptionIfN原创 2011-01-24 10:05:00 · 5525 阅读 · 1 评论 -
将Word嵌入Delphi中
<br />unit Main;<br />interface<br />uses<br /> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,<br /> Dialogs, ExtCtrls, StdCtrls,Comobj;<br />type<br /> TForm1 = class(TForm)<br /> Panel1: TPanel;<br /> Panel2: TPanel;<原创 2011-01-24 09:58:00 · 1071 阅读 · 0 评论 -
使用动态包导出函数的调用单元完整源代码
<br />unit uMainFrm;<br />interface<br />uses<br /> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,<br /> Dialogs, StdCtrls, Mask;<br />type<br /> TMainForm = class(TForm)<br /> btnPkgForm: TButton;<br /> medtOp1: TMaskE原创 2010-11-22 16:29:00 · 396 阅读 · 0 评论 -
以Delphi Package架构多人开发应用程序环境
以Delphi Package架构多人开发应用程序环境<br />■印象中的Package<br /> <br />在一般的AP开发时,我们知道在Delphi7.0整合环境中将Project->Options->选到Packages卷标页,Builder with runtime packages选项打勾,就会让编译出来的执行文件Size变小很多(以空白的Form1为例,编译出来的Size由367kb变成20kb),因为它把一些VCL共享模块的Loding放到*.bpl中;换句话说这个变小的EXE文件在执行原创 2010-11-22 16:16:00 · 742 阅读 · 0 评论 -
CXGRID问题大荟萃
<br />公司目前这个项目要大量的用CxGrid,以前我从未用过,所以被逼得焦头烂额.加之我用的这电脑系统貌似有问题(老出些莫明其妙的事儿,如:突然不能编译出exe,上班开机突然丢失大堆的DLL文件,F9执行后关掉EXE Delphi就死掉了...)有时候做得想骂娘. <br />现在特将收集的一些文章与大家分享,也希望大家不要重蹈我的覆辙. <br /> http://www.delphibbs.com/keylife/iblog_show.asp?xid=19911大富翁论坛-富翁笔记-cxgrid原创 2010-11-22 15:46:00 · 495 阅读 · 0 评论 -
dxbarmanager菜单增加项目
<br />---无代码下载<br />{<br />经常上盒子查找需要的资料,今天给大家发一点有用的代码<br />相信好多人都用过dxbarmanager的菜单,但要动态增加项目可能会感觉不知所然!<br />以下代码在D7测试通过<br />bigwell<br />}<br />unit Unit1;<br />interface<br />uses<br /> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,原创 2011-01-24 10:11:00 · 3329 阅读 · 0 评论 -
Delphi + Word = 数据库 + 公文处理
<br />delphi擅长做数据库类的mis开发,但对于oa就有点力不从心了。不过随着microsoft的com技术逐渐成熟,现在普通windows应用已经可以和office 97无缝结合了,尤其是在delphi 5中提供了一组servers组件,更是简化了程序开发。 <br />最近接触了一个用户的案例,用delphi控制word做一个合同管理程序。办公人员先根据业务需要,写好合同的文字,但在用户名称、产品名称等变化的位置填写指定的标记字符串,然后通过delphi把数据库中的实际数据替换掉word中的文原创 2011-01-24 09:57:00 · 543 阅读 · 0 评论 -
Delphi 中TMsComm控件使用指南
注册TMsComm控件1.将Mscomm.srg, Mscomm32.ocx,Mscomm32.dep三个文件复制到系统文件夹中C:\winnt\system32\。2.用Windows下的注册工具regsvr32注册该OCX控件,点击“开始”->"运行",再在中填入(假设操作安装在C盘,WIN2000): Regsvr32 C:\winnt\system3原创 2013-08-20 09:21:35 · 4799 阅读 · 0 评论 -
软件加密锁加密技巧
本文将介绍软件加密锁的一些编程技巧,以及软件开发者将如何编写安全可靠的代码,如何对付各种各样的加密狗破解,编写加密程序时应该尽量避免的一些问题等等。以下是全文。 一、加密狗加密的基本原理 开发商程序通过调用硬件加密狗的接口模块对硬件加密狗操作,硬件加密狗响应该操作并通过接口模块将相应数据返回给开发商的应用程序。开发商的应用程序可以对返回值进行判定并采取相应的动作。如果返回无效的响应,表原创 2013-06-24 14:35:29 · 872 阅读 · 0 评论 -
Delphi中使用cxGrid对数据集进行Sort和Locate操作
Delphi中使用cxGrid对数据集进行Sort和Locate操作 核心提示:在编写某个系统时,由于使用了数据集类型无关技术(即数据集可能是ADOQuery,也有可能是TClientDataSet等等)。当需要对数据进行排序和查找时,只好利用cxGrid自身的功能来实现:fun...在编写某个系统时,由于使用了数据集类型无关技术(即数据集可能是ADOQuery,也有可能是TClie原创 2012-11-02 08:28:27 · 3216 阅读 · 0 评论 -
Delphi7怎么样调用系统语音库 .
(一)要使用系统的语音库,你需要先安装 Microsoft Speech SDK 5.1 及其语言包,下载地址:Speech SDK 5.1: http://www.newhua.com/soft/38264.htmSpeech SDK 5.1 语言包(中英文): http://www.onlinedown.net/soft/38265.htm (二)安装完成后,需要在D7转载 2012-10-20 15:29:19 · 6697 阅读 · 0 评论 -
如何在Delphi中使用Microdraw图形控件的OLEVariant类型数据
MicroDraw图形控件可以嵌入到网页内运行,实现步骤如下: 1. 首先需要正确的生成CAB文件(MicroDraw.CAB)并进行数字签名; 最新版CAB包下载地址:http://www.microdraw.org/cab/v490/microdraw.cab 如何生成CAB文件参见附A,CAB生成完毕还需要进行数字签名。 如果CAB需要商业发行,建议购买微软的数字签名证书,当然也可以用我们的数字签名(控件下载的时候会显示微兆公司信息) 2. 将CAB文件上原创 2011-05-08 16:11:00 · 1385 阅读 · 0 评论 -
如何在Delphi中使用Microdraw图形控件的OLEVariant类型数据
如何在Delphi中使用Microdraw图形控件的OLEVariant类型数据示例如下:procedure TForm1.Button1Click(Sender: TObject);varobjid : oleVariant;i,dim,lb,hb,count :integer;pt_x,pt_y :array of double;begin self.Memo1.Clear; setlength(pt_x,1);原创 2011-05-08 16:09:00 · 1026 阅读 · 0 评论 -
控制主从表的关系
<br />最好在数据库中设置一个Triger. <br />控制主从表的关系。但不要控制的太死。 <br />参考:DelphiClassInfo(主表)(Delphi类帮助信息)和DelphiItemInfo <br />(从表)(Delphi每一个类的属性/方法/事件) <br />//**************************************************** <br />// DelphiClassInfo的Triger <br />//****************原创 2011-01-24 10:01:00 · 975 阅读 · 0 评论 -
TQuery的CachedUpdates必须陪合TUpdateSQL控件才能使用
<br />ExeSQL是直接执行SQL语句,而与CachedUpdates没有任何关系。<br />CachedUpdates是指对TTable或TQuery中的已修改的数据进行缓存,直到调用<br />ApplyUpdates.<br />ApplyUpdates是对TQuery或TTable中已修改,但为提交的数据进行提交,<br />并且只有在TQuery或TTable对象的CachedUpdates=True且Active=True,<br />State=dsbrowse时才能调用。<br />原创 2011-01-24 10:15:00 · 2956 阅读 · 0 评论 -
动态包(bpl)的一个窗体源代码
<br />unit Unit1;<br />interface<br />uses<br /> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,<br /> Dialogs;<br />type<br /> TForm1 = class(TForm)<br /> private<br /> { Private declarations }<br /> public<br /> { Pu原创 2010-11-22 16:32:00 · 582 阅读 · 0 评论 -
CXGRID问题大荟萃
<br />公司目前这个项目要大量的用CxGrid,以前我从未用过,所以被逼得焦头烂额.加之我用的这电脑系统貌似有问题(老出些莫明其妙的事儿,如:突然不能编译出exe,上班开机突然丢失大堆的DLL文件,F9执行后关掉EXE Delphi就死掉了...)有时候做得想骂娘. <br />现在特将收集的一些文章与大家分享,也希望大家不要重蹈我的覆辙. <br /> http://www.delphibbs.com/keylife/iblog_show.asp?xid=19911大富翁论坛-富翁笔记-cxgrid原创 2010-11-22 14:03:00 · 847 阅读 · 0 评论 -
Delphi中带缓存的数据更新技术
<br /> 一. 概念<br /><br /> 在网络环境下,数据库应用程序是c/s或者是多层结构的模式。在这种环境下,数据库应用程序的开发应当尽可能考虑减少网络数据传输量,并且尽量提高并发度。基于这个目的,带缓存的数据更新技术应运而生,其大致过程就是:应用程序将数据库中数据提取到客户端的缓冲区,在缓冲区中完成数据的修改、更新、以及新数据的插入等操作;等操作完成之后,在一个合适的时间,一次性的将数据提交给数据库,从而大大减少了网络流量,减小了数据库服务器的负载,提高了并发性能。<br /><br />原创 2010-11-17 11:11:00 · 637 阅读 · 0 评论 -
经典的调用窗口函数:调用融合窗口
<br /> <br />融合窗口是为了浏览多窗口方便,且不太关心窗口最小化和最大化模式。典型的融合窗口,比如Maxthon浏览器,浏览多个网页非常方便;微软眼见融合窗口众望所归,在IE7版本也引入了融合窗口技术,但微软的IE既耗内存又容易崩溃。题外话不多说了。在delphi实现其实也很简单,如上图:<br />procedure ShowDockForm(FormClass: TFormClass; dockCtrl: TWinControl;<br />IsMaxed: Boolean);<br /><原创 2010-11-20 10:07:00 · 724 阅读 · 0 评论 -
Delphi 连接DBF数据
<br />连接DBF数据<br />构造ado connection string<br />提供者选择 Microsoft Jet 4.0 OLEDB Provider<br />"所有"那里编辑 Extended Properties,<br />dbf文件的话设置为dBase 5.0(注意dBase和5.0之间必须有空格,最好拷贝过去粘贴)<br />db文件的话设置为Paradox 7.X<br />(dbf就是dbase或Vfox数据库,db就是paradox数据库)<br />"连接"那里的"原创 2011-01-11 10:58:00 · 2177 阅读 · 0 评论 -
如何控制关键字段的重复输入及报错
<br />下面以一个实例来说明:在 ‘c:/’ 下有一个数据库‘Renshi.dbf’,字段为:‘bianhao’;‘xingming’,类型为字符型,以关键字段‘bianhao’为索引字段,建立数据库的连接。 <br /><br /> 我们用控件DBNavigator1、DataSource1、Table1、DBedit1、 <br /> DBedit2、Table2来建立数据库的连接。其各属性为: <br /> Table1.databasename:='c:/';<br /> Table1.原创 2010-11-17 15:16:00 · 523 阅读 · 0 评论 -
建立临时表
<br />1.建立临时表<br /> 数据输入是开发数据库程序的必然环节。在ClientServer结构中,客户端可能要输入一批数据后,再向服务器的后台数据库提交,这就需要在本地(客户端)建立临时数据表来存储用户输入的数据,待提交后,清除本地表数据。这种方法的好处是:提高输入效率,减小网络负担。<br /><br /> 由于用户一次输入的数据量一般情况下较小(不会超过几百条记录),所以临时表可以建立在内存中,这样处理速度较快。<br /> 方法1:使用查询控件(TQuery)<br /> 第1步:原创 2010-11-17 14:22:00 · 616 阅读 · 0 评论 -
用Fast Report建立跨栏报表
问:每一个机器可以对应N多个模具,单重和出件数是模具的属性(如下图)。这样的报表用fastreport怎么建立,机器型号的CELL宽度怎么改变?请大家给我段事例代码。———————————————-|机器型号|模具型号|单重|出件数|———————————————-| | 9003-1 |120 | 5 | | K813 | 7853-2 |100 | 6 | | | 1235-7 | 50 | 10 | ———————————原创 2010-11-13 13:58:00 · 557 阅读 · 0 评论 -
如何操作INI文件?
<br />INI 文件在系统配置及应用程序参数保存与设置方面,具有很重要的作用,所以可视化的编程一族,如 VB、VC、VFP、Delphi 等都提供了读写 INI 文件的方法,其中Delphi中操作 INI 文件,最为简洁,这是因为Delphi3提供了一个 TInifile 类,使我们可以非常灵活的处理 INI 文件。 <br /><br />一、有必要了解 INI 文件的结构:<br />;注释 <br />[小节名] <br />关键字=值<br />...<br />INI文件允许有多个小节,每个小原创 2010-11-13 11:51:00 · 535 阅读 · 0 评论 -
利用VFI提高Delphi程序的重用性
<br />摘要:程序重用性是软件质量的重要指标之一,提高重用性对于减少程序潜在缺陷,提高程序开发效率,降低维护成本具有重要的影响。本文针对Delphi所提供的VFI,给出了具体应用VFI来提高程序重用性的实例。该实例表明,使用VFI可以极大地简化程序代码,并保持界面的一致性,提高程序开发效率。<br />关键词:重用性、Delphi、VFI<br />1 引言<br /> 软件重用(Software Reuse)已经深入人心,早在1968年的NATO软件工程会议上就已经提出可复用库的思想。软件原创 2010-11-13 11:24:00 · 590 阅读 · 0 评论 -
使用DELPHI的繼承和包
<br /> 在一個大的管理系統中可以事先分析和定義主要的功能模塊界面﹑功能函數﹑通用變量﹑子程序。然后將其打包。其它小組成員只需再次基礎上進行繼承和調用即可。<br /> 在我的開發小組中我們將系統划分為維護部分(TEDITFRM)﹑查詢部分(TQUERYFRM)﹑打印部分(TPRINTFRM)﹑定位部分(TLOCATEFRM)﹑選擇清單(TSELECTFRM)等。<br /> 這樣可以減少工作量﹑提高開發效率﹑減少冗余代碼﹑減少后期維護量。<br /> 同時應在開發前做好命名規則。如﹕(注原创 2010-11-17 14:39:00 · 330 阅读 · 0 评论 -
获得其他程序的子窗体
<br />通过一个父窗体的句柄,递归的枚举它的子窗体,我们可以最终找到需要的子窗体。<br /><br />用法如下:<br /><br />nParentHandle: HWnd; <br />nChildHandle: HWnd; <br /><br />nParentHandle := FindWindow(nil, 'Notepad'); <br />if nParentHandle <> 0 then <br />nChildHandle := FindChildWindow(nParentHa原创 2010-11-17 15:40:00 · 482 阅读 · 0 评论 -
UniDAC 2.0 手动安装指导
<br />用过ODAC,SDAC,MyDAC,IBDAC,PgDAC(分别支持Oracle、MSSQL、MYSQL、IB/FB、PostgreSQL)等都知道,Corelab公司的数据集驱动非常不错,取数非常快,性能稳定。Corelab的DBX驱动也是做的非常不错。相反,Borland的DBX除了IB驱动做的可以之外,其他的DBX驱动BUG不断,尤其是oracle的驱动。但ODAC,SDAC,IBDAC这些产品分别只能连接一种数据数据库,不仅增加了用户的消费投入,对多种数据库连接也造成诸多不便!由此,Co原创 2010-11-20 10:33:00 · 916 阅读 · 0 评论 -
在Delphi中利用Tbatch组件完成数据批处理
在 数 据 库 应 用 系 统 中, 常 常 要 对 数 据 进 行 成 批 的 如 追 加、 删 除、 更 改 等 操 作, 这 种 批 量 操 作 在 专 门 的 数 据 库 开 发 工 具 如VFP 中 用APPEND 、COPY 命 令 带 上 相 应 的 命 令 子 句 就 能 轻 易 完 成。 但 在 其 它 开 发 工 具 中 并 没 有 类 似 的 命 令, 而 是 提 供 能 完 成 类 似 功 能 的 控 件 或 对 象, 如 在PowerBuilder 中 就 是 利 用Pipe Li原创 2010-11-17 15:02:00 · 1575 阅读 · 0 评论 -
多层结构中必不可少件TClientDataSet的全面剖析
在三层结构中,TClientDataSet的地位是不可估量的,她的使用正确与否,是十分关键的,本文从以下几个方面阐述她的使用,希望对你有所帮助.1.动态索引procedure TForm1.DBGrid1TitleClick(Column: TColumn);beginif (not column.Field is Tblobfield) then//Tblobfield不能索引,二进制ClientDataSet1.IndexFieldNames:=column.Field.FieldN原创 2010-11-17 14:25:00 · 410 阅读 · 0 评论 -
delphi的消息对话框
<br /> 1、messagebox:显示一条消息和一个或多个按钮,并且可以通过用户在对话框中的选择接收用户的响应。<br /> 2、messagedlg:<br /> 语法格式:<br /> function messagedlg(const msg:string; AType: TMsgdlgtype; Abuttons; TMsgdlgbuttons; helpctx: longint <br />):word;<br /> 它包括四个参数,第一个参数msg是显示在对话原创 2010-11-17 14:13:00 · 518 阅读 · 0 评论 -
在Delphi中实现将Font.Style写入INI文件
<br />前不久我编写一个小程序在INI文件中记录字体的属性(颜色值color,大小size,字体名name,样<br />式style),其中color值和size值可以用数值方式写入INI文件,name是用字符方式写入,但<br />Font.style不是数值型、字符型,也不是布尔型,而是TfontStyles类,无法直接写入INI文件中去,<br />我找了好多相关书籍也没找到方法,也到网络上的Delphi站点去问,也没得到满意的答复,没法子,<br />看来还得自已想办法解决,我通过一系列的摸索原创 2010-11-17 13:55:00 · 2204 阅读 · 0 评论 -
为什么要选择UniDAC
说到数据集组件,大家也许会首选ADO,然后说BDE太老了,DBX不敢用。其实delphi优秀的数据集组件真不少,除了上诉的数据集组件,还有ZEOSDB、SQL Direct、UniDAC等,要是专业的数据集组件,更是百花盛开,如FIBPLUS、SDAC、ODAC、DOA等等,商业和开源不尽其中!这里只讨论UniDAC和ADO的一些比较。 Delphi能发展到现在,和一些著名的第三方控件厂商大力支持分不开,这其中包括Devart公司(Corelab)公司。Corelab公司做数据集驱动非常原创 2010-11-20 10:14:00 · 1621 阅读 · 0 评论 -
精简Delphi数据库应用系统-定制BDE驱动程序
<br />Delphi程序员都知道,在数据库应用程序开发完成后,要发布程序需要同时发布BDE(Borland Database Engine),否则会引起错误“A Error occurred while attempingto initilize Borland Database Engine(Error $2109)”。当觉得程序太大而辛辛苦苦精简自己的程序到满意时,却发现BDE管理程序器需要9M之巨,不由感到沮丧,真有点自己的努力被糟蹋的感觉。不过也不必太沮丧,只要肯尝试,还是有办法来精简BDE的。原创 2010-11-17 14:54:00 · 985 阅读 · 0 评论 -
控制面板大全
<br />在程序运行过程中启动控制面板的各个设置功能:<br />var x:cardinal;<br />begin<br />{启动控制面板}<br />x:=winexec('rundll32.exe shell32.dll,Control_RunDLL',9);<br />{辅助选项 属性-键盘}<br />x:=winexec('rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1',9);<br />{辅助选项 属性-声音}<br />x:原创 2010-11-17 13:42:00 · 510 阅读 · 0 评论 -
Delphi按下回车键使各控件依次获得焦点
procedure TForm1.FormShortCut(var Msg: TWMKey; var Handled: Boolean);var i : Integer;begin if Msg.CharCode = VK_RETURN then begin i := ActiveControl.ComponentIn原创 2013-08-20 09:32:40 · 923 阅读 · 0 评论