- 博客(48)
- 收藏
- 关注
原创 Delphi中OnDrawCell的使用技巧
人们在利用Delphi开发数据库应用程序时,经常使用表格控件制作报表。灵活地使用表格控件的OnDrawCell事件,可以完成一些特殊效果的显示,能更好地满足用户需求。本文介绍灵活使用OnDrawCell事件的三个技巧。 动态更新表格行的颜色 有时需要在报表中动态更新表格行的颜色。例如,在供应商列表中,优先供货的供应商用绿色显示,其他的供应商用红色显示。此时可以在OnDrawCell事
2004-12-30 16:39:00 833
原创 Delphi中的四舍五入问题
在Delphi中使用Round函数得到的答案有时与我们所预期的会不太一样:采用的是四舍六入五留双。即当舍或入位大于或小于五时按四舍五入来处理,而当舍或入位等于五时,就要看前面一位是什么,根据奇进偶不进,它总是返回一个偶数值。 示例 结果 i:= Round(11.5) 12i:= Round(10.5) 10 这种Rou
2004-12-30 16:37:00 763
原创 在Delphi中自己建立交叉表
经常在CSDN上查阅名位大侠的文章,得益不少,近期因做一个项目,需要用到交叉表,报表上倒是有,但客户要求在Grid上能操作,没有办法,只好自己写了一段代码用于普通查询到交叉表的实现,不敢独享,故上传,望能抛砖引玉,请名位大侠不吝指教。 function CreateTmptab(const AFieldDefs:TFieldDefs):TDataSet;varTempTable:TatC
2004-12-30 16:37:00 720
原创 用Delphi制作DLL小结
一 Dll的制作一般分为以下几步:1 在一个DLL工程里写一个过程或函数2 写一个Exports关键字,在其下写过程的名称。不用写参数和调用后缀。二 参数传递1 参数类型最好与window C++的参数类型一致。不要用DELPHI的数据类型。2 最好有返回值[即使是一个过程],来报出调用成功或失败,或状态。成功或失败的返回值最好为1[成功]或0[失败].一句话,与windows c++兼容。3 用
2004-12-30 16:36:00 794
原创 DELPHI中DBGrid中行的定位及着色实现
DELPHI中DBGrid中行的定位及着色实现 1 问题的提出 在对一个数据库系统进行操作的时候,发现不能对DBGrid控件中的数据行定位及在定位到某行后无法对当前行进行明显的标志(例如改变颜色),在往上查找了很多资料,发现基本没有对这个内容的介绍,包括一些动态设顶行的颜色等文章讲的都是在数据初始化时做的操作,而没有在数据源刷新后的重新定位功能,所以下决心解决这个问题,通过一上午对D
2004-12-30 16:35:00 910
原创 Delphi开发单机瘦数据库程序要点
一、概述 Delphi作为Windows下的一种快速开发工具,不仅能开发一般的Windows应用程序,而且还具有强大的数据库应用程序开发功能。Delphi本身提供了对BDE,ODBC,ADO和InterBase几种数据库驱动的支持,能够满足不同应用对数据库程序开发的需要。 然而,在发布用Delphi开发的数据库程序时,除了要安装应用程序之外,还需要同时发布数据库驱动程序。这对于一些只涉及单个或
2004-12-30 16:34:00 699
原创 delphi来写你的第一个dll文件,非常简单!
一、开使你的第一个DLL专案 1.File->Close all->File->New﹝DLL﹞ 代码://自动产生Code如下 library Project2; //这有段废话。 uses SysUtils, Classes; {$R *.RES} begin end.2.加个Func进来: 代码:librar
2004-12-25 10:16:00 823
原创 delphi如何调用sql存储过程,并获取结果
delphi如何调用sql存储过程,并获取结果 adostoredproc1.Close; adostoredproc1.ProcedureName:=sp_thchl; adostoredproc1.Parameters.Clear; adostoredproc1.Parameters.CreateParameter(out,ftInteger,pdoutput,1,1)
2004-12-15 13:47:00 1633
原创 跟日期有关的两条经典SQL语句
1.用一条语句得出某日期所在月份的最大天数? SELECT DAY(DATEADD(dd, -DAY(2004-02-13), DATEADD(mm, 1, 2004-02-13))) AS Day Number 2.少记录变成多条记录问题 有表tbl 日期 收入 支出 2004-02-11 00:00:00 60 45 2004-03-01
2004-12-02 14:16:00 679
原创 delphi中的split函数
//根据字符串,拆分字符串,相当于vb中的split函数function SplitString(const Source,ch:string):TStringList;var temp:String; i:Integer;begin Result:=TStringList.Create; //如果是空自符串则返回空列表 if Source= then exit; temp
2004-11-30 15:13:00 910
原创 改变DBGrid列的颜色,没什么特别,但是经过调色师检验哦!
一个过程,直接调用就可以了!procedure ChangeDbGridColColor(ojbDbGrid:TDbGrid);var i:integer;begin for i:= 0 to ojbDbGrid.Columns.Count -1 do begin case i mod 3 of 0: ojbDbGrid.Columns.Items[i]
2004-11-30 15:12:00 706
原创 ini读写
function readInifile(fileName,section,Ident:string):string;? //读取配置文件var? ini:tinifile;begin? ini:=tinifile.Create(fileName);? result:=ini.ReadString(section,ident,);? ini.Free;end;procedure wr
2004-11-30 15:08:00 634
原创 Format的用法
Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用:首先看它的声明:function Format(const Format: string; const Args: array of const): string; overload;事实上Format方法有两个种形式,另外一种是三个参数的,主要区别在于它是线程安全
2004-11-30 15:06:00 576
原创 Delphi部分函数、命令、属性中文说明
Abort 函数 引起放弃的意外处理Abs 函数 绝对值函数AddExitProc 函数 将一过程添加到运行时库的结束过程表中Addr 函数 返回指定对象的地址AdjustLineBreaks 函数 将给定字符串的行分隔符调整为CR/LF序列Align 属性 使控件位于窗口某部分Alignment 属性 控件标签的文字位置AllocMem 函数 在堆栈上分配给定大小的块AllowGrayed 属性
2004-11-30 15:05:00 533
原创 Delphi异常处理的基本原则和方法
一、异常的来源。在Delphi的应用程序中,下列的情况都比较有可能产生异常。(1)文件处理(2)内存分配(3)Windows资源(4)运行时创建对象和窗体(5)硬件和操作系统冲突?二、异常的处理。(1)try…except…end;在try体内的代码发生异常时,系统将转向except部分进行异常的处理。这是Delphi处理异常的最基本的方式之一。?
2004-11-30 15:03:00 577
原创 字符串函数大全
【字符串函数大全】 首部 function AnsiResemblesText(const AText, AOther: string): Boolean; $[StrUtils.pas 功能 返回两个字符串是否相似 说明 ANSI(American National Standards Institute)美国国家标准协会;不区分大小写 参考
2004-11-30 15:01:00 707
原创 修正TListView应用XP Theme时的错误
Dephi6(及以下版本)并不提供XP风格支持,因为Dephi6推出时XP还在测试当。要使应用程序支持XP风格必须添加"manifest xml”资源文件到应用程序中,告诉系统对此应用程序使用6.0的comctl32.dll,而不是5.0。但有部分VCL控件与6.0存在兼容问题。 TListView为vsReport时,鼠标移到列头时会抛出异常,修正这个问题需要修改ComCtrls.pas,
2004-11-30 15:00:00 591
原创 资源文件
目的,在Delphi中使用资源文件本例是将一个Flash动画加到我的们程序中,在程序启动时再释放出来.先新建一个文件文件写入内容:Flash SwfFile1 Thanks.SWF另存为:SwfFile.rc然后用brcc32.exe生成资源文件.res然后在Delphi中加入一行(最后一行)implementation{$R *.dfm}{$R SwfFile.RES}//就是这行然后
2004-11-30 14:56:00 590
原创 时间函数
【0】在工程文件中Application.Run语句之前加入下面语句,可不让主Form在运行时显示: Application.ShowMainForm := False; 【1】显示设置时间的对话框 ShellExecute(Handle, open, control, date/time, nil, SW_SHOW); 【2】FormatDateTime
2004-11-30 14:54:00 627
原创 我的DBTreeView--TreeView直接连接数据表
认真研究如下代码:DBTreeView--TreeView直接连接数据表unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, DBTables, ComCtrls, Grids, DBGrids, ExtCtr
2004-11-30 14:52:00 658
原创 用Delphi制作DLL的方法
用Delphi制作DLL的方法一 Dll的制作一般步骤二 参数传递三 DLL的初始化和退出清理[如果需要初始化和退出清理]四 全局变量的使用五 调用静态载入六 调用动态载入七 在DLL建立一个TForM八 在DLL中建立一个TMDIChildForM九 示例:十 Delphi制作的Dll与其他语言的混合编程中常遇问题:十一 相关资料一 Dll的制作一般分为以下几步:1 在一个DLL工
2004-11-30 14:51:00 441
原创 Delphi编写组件封装asp代码的基本步骤(Asp组件系列)
如果你想脱离asp爱好者的水平,那么你就应该学会为asp编写组件。我在google上搜索了一下,Delphi编写asp组件的文章一共就几篇,所以今天写了这篇Delphi编写asp组件的基础文章,希望对新手有点帮助。如果你要学习VB编写asp组件的话,建议看看龙卷风大哥的文章(http://blog.csdn.net/online/category/9939.aspx),不是我可以比的。呵呵:)
2004-11-30 14:49:00 583
原创 DELPHI常用函数集及简要范例
abs(x) 绝对值arctan(x) 反正切cos(x) 传回馀弦函数值exp(x) e的x次幂frac(x) 取小数部分int(x) 取整ln(x) 自然对数sin(x) 传回正弦函数值 sqr(x) x*xsqrt(x) 平方根其它pred(x) pred(D)=C, pred(true)=1;succ(x) succ(Y
2004-11-29 21:48:00 1038
原创 多层数据库开发十四:剖析几个MIDAS示范程序
第十四章 剖析几个MIDAS示范程序 MIDAS是Multi-Tier Distributed Application Services Suite的简称,为Delphi 4的一个关键技术。对于初学者来说,MIDAS具有相当的难度,因此,这一章详细剖析几个MIDAS示范程序,以帮助读者理解和掌握MIDAS技术。 与一般的数据库应用程序不同的是,只有当应用服务器正在运行的情况下,才能打开、编译和
2004-11-29 21:41:00 940
原创 多层数据库开发十三:剖析几个数据库应用程序
第十三章 剖析几个数据库应用程序 前面已经详细讲述了Delphi 4的数据库编程技术。为了使读者能够透彻地理解有关编程技术并灵活运用,我们把Delphi 4的几个示范程序拿出来加以剖析,这些示范程序都编得非常有技巧。要说明的是,剖析程序时我们可能会忽略掉一些与主题无关的细节。13.1 一个后台查询的示范程序 这一节详细剖析一个后台查询的示范程序,项目名称叫Bkquery,它可以在C:/Prog
2004-11-29 21:39:00 951
原创 多层数据库开发十二:使用数据控件
第十二章 使用数据控件 在数据库应用程序中,数据控件是经常要用到的。与前面介绍的数据集构件如TTable、TQuery、TStoredProc、TClientDataSet不同的是,数据控件都是可视的。也就是说,如果修改了这些构件的属性,能在窗体上马上反映出来。如果这些构件的Enabled属性设为True并且数据集的Active属性也设为True,在设计期就可以看到数据。12.1 Delph
2004-11-29 21:38:00 939
原创 多层数据库开发十一:TClientDataSet
第十一章 TClientDataSet 与TTable、TQuery一样,TClientDataSet也是从TDataSet继承下来的,它通常用于多层体系结构的客户端。TClientDataSet最大的特点是它不依赖于BDE(Borland Database Engine),但它需要一个动态链接库的支持,这个动态链接库叫DBCLIENT.DLL。在客户端,也不需要用TDatabase构件,因为客
2004-11-29 21:37:00 983
原创 多层数据库开发十:存 储 过 程
第十章 存 储 过 程 这一章介绍怎样使用存储过程。存储过程是数据库服务器端的一段程序,它有两种类型。一种类似于SELECT查询,用于检索数据,检索到的数据能够以数据集的形式返回给客户。另一种类似于INSERT或DELETE查询,它不返回数据,只是执行一个动作。有的服务器允许同一个存储过程既可以返回数据又可以执行动作。10.1 概 述 在不同类型的服务器上,存储过程的工作方式是不同的。例如,对
2004-11-29 21:35:00 849
原创 多层数据库开发九:查询数据库
第九章 查询数据库 这一章介绍如何用TQuery构件查询数据库,如何通过SQL语句检索、插入、更新和删除数据。SQL是符合工业标准的关系数据库语言,既可以用于远程的基于服务器的数据库,如Sybase、Oracle、InterBase和Microsoft SQL Server,也可以用于本地数据库如Paradox、dBASE、FoxPro和Access以及符合ODBC的数据库。9.1 有效地使用查
2004-11-29 21:34:00 813
原创 多层数据库开发八:访 问 表 格
第八章 访 问 表 格 这一章介绍怎样在数据库应用程序中使用TTable构件。TTable的上级是TDBDataSet,而TDBDataSet是从TBDEDataSet继承下来的,TBDEDataSet又是从TDataSet继承下来的。因此,如果对第六章的内容完全掌握了的话,您应该对TTable构件不感到陌生。8.1 使用TTable构件的一般步骤 TTable构件可以访问数据库表格中的每一行
2004-11-29 21:33:00 1447
原创 多层数据库开发七:字 段 对 象
第七章 字 段 对 象 Delphi 4用TField来操纵数据集中的字段。不过,具体的字段实际上都是TField的派生类,因此,应用程序很少需要直接用到TField。 当打开一个数据集的时候,Delphi 4会自动生成动态的、与数据类型有关的字段对象。当然,可以用字段编辑器创建永久的字段对象来代替动态的字段对象。7.1 具体的字段对象 Delphi 4支持24种类型的字段,它们都是从TFi
2004-11-29 21:31:00 967
原创 多层数据库开发六:什么是数据集
第六章 什么是数据集 Delphi 4中有四种类型的标准数据集构件,分别是TTable、TQuery、TStoredProc和TClientDataSet。这些数据集构件都是从一个共同的基类TDataSet继承下来的,其中,只有TClientDataSet是直接从TDataSet继承下来的,而TTable、TQuery、TStoredProc的直接上级是TDBDataSet,TDBDataSet
2004-11-29 21:29:00 857
原创 多层数据库开发五:连接数据库
第五章 连接数据库 在数据库应用程序中,TDatabase构件是很有用的。它能够管理和操纵数据库的连接,控制数据库连接的持续性。TDatabase构件还提供了管理事务和申请更新数据的功能。 第三章已经详细介绍了TSession与TDatabase的关系,所有的数据库连接都在TDatabase构件的控制之下,而所有的TDatabase构件又在BDE会话期对象的管理之下。5.1 永久和临时的TDa
2004-11-29 21:28:00 798
原创 多层数据库开发四:BDE会话期
不管是单层、两层还是多层的数据库应用程序,一般都要用到BDE(BorlandDatabase Engine)。Delphi 4用TSession来管理BDE会话期对象,用TSessionList来管理和操纵一个应用程序中所有的BDE会话期对象。 一般来说,并不需要显式地把TSession构件放到窗体或数据模块上,因为数据库应用程序在每次启动时会自动创建一个默认的BDE会话期对象叫Session。
2004-11-29 21:26:00 838
原创 多层数据库开发三:创建多层应用程序
第三章 创建多层应用程序 一个多层的Client/Server应用程序在逻辑上划分为几个部分,分别在不同的机器上运行,这些机器既可以在一个局域网内,也可以在Internet上。多层体系结构最大的优势可以概括为两点,一是集中化的商业逻辑,另一个是客户程序可以做得很“瘦”。 目前较常见的是三层的体系结构,其中,最关键的是应用服务器,它在三层体系结构中起了承上启下的作用,所以,应用服务器又叫Data
2004-11-29 21:25:00 1054
原创 多层数据库开发二:单层和两层的应用程序
单层和两层的数据库应用程序相对来说比较简单,应用程序和数据库往往在同一个文件系统中,甚至就在同一个磁盘上。这两种类型的数据库应用程序都不太适合于在多用户的环境下同时访问同一个数据库。 对于单层的应用程序来说,Delphi 4提供了两种获得数据的方式,一种方式是通过BDE,另一种方式是通过文件。两层的应用程序一般要使用BDE。2.1 基于BDE的应用程序 由于BDE以及数据访问构件处理了诸如读数
2004-11-29 21:24:00 905
原创 多层数据库开发一:设计数据库应用程序
第一章 设计数据库应用程序 数据库应用程序允许用户与存储在数据库中的信息进行交互。数据库提供了信息的结构,供不同的应用程序共享。 Delphi 4支持关系型数据库。关系型数据库以行和列即表格的形式来组织信息。当您设计一个数据库应用程序的时候,必须了解数据的结构,这样才能设计出一个合适的用户界面来显示数据库中的数据并且允许用户输入新的数据或者修改已有的数据。1.1 使用 数据库构件选项板的“
2004-11-29 21:22:00 836
原创 TAdoQuery导出数据到Excel
procedure TFrmZjMoveSch.BitBtn2Click(Sender: TObject);var WD: TWriteData ;begin WD := TWriteData.Create ; WD.Qry := qryZjMoveSch; WD.Summary.Add(铸件移交计划:); WD.Summary.Add(所有生产批号!); WD.Summ
2004-11-29 21:20:00 642
原创 四舍五入的BUG
四舍五入的BUG(转http://www.nssoft.net/showdoc.asp?did=267)关键词:四舍五入 Delphi的四舍五入函数Round有BUG,无法正常工作。对于XXX.5的情况,整数部分是奇数,那么会Round Up,偶数会Round Down,例如:x:= Round(1
2004-11-29 21:18:00 589
原创 Delphi面向对象编程的20条规则
Delphi面向对象编程的20条规则Marco Cantuhttp://www.nssoft.net/showdoc.asp?did=1009关键词:面向对象编程 前言大多数Delphi程序员都像使用Visual Basic 那样使用他们手头上开发工具,而丝毫没有意识到Delphi的强大功能,更谈不上使用这些功能了。(写到这里,编辑惶恐的举起
2004-11-29 21:17:00 557
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人