
Delphi
文章平均质量分 79
Tercel99
这个作者很懒,什么都没留下…
展开
-
主窗体最小化时不显示在任务栏
主窗体添加以下过程procedure TMainForm.WMSysCommand(var Msg: TWMSysCommand);begin if Msg.CmdType=SC_MINIMIZE then begin ShowWindow(Handle,SW_HIDE); end else inherited;end;原创 2012-09-25 23:16:28 · 1300 阅读 · 0 评论 -
Delphi主从表例子
在sql server 的northwide 中建立主表create table sell_h( sell_id char(10),cust_name char(10) Primary key(sell_id) )gocreate table sell_h( sell_id char(10),inv char(10) ,amt float,qty float Primary key(sell_i原创 2008-09-08 15:18:00 · 10694 阅读 · 2 评论 -
用DELPHI的RTTI实现数据集的简单对象化
在《强大的DELPHI RTTI--兼谈需要了解多种开发语言》一文中,我说了一下我用DELPHI的RTTI实现了数据集的简单对象化。本文将详细介绍一下我的实现方法。 首先从一个简单的例子说起:假设有一个ADODataSet控件,连接罗斯文数据库,SQL为: select * from Employee 现在要把它的内容中EmployeeID, FirstName, Last原创 2008-04-11 17:32:00 · 837 阅读 · 0 评论 -
用Delphi的RTTI实现对象的XML持久化
之前我一直是用DELPHI提供的XML Data binding来做的,基本做法是:先用工具(如XMLSPY)做好一个XML Schema(XSD),然后用XML Data binding生成DELPHI的接口和类。当然,一旦生成好就很方便了,在程序里我只要操作这个接口就好了,其中各个Field都会被变成属性,并且类型也都如我在XSD中的定义。但问题在于程序在开发过程中,总是会有一些变化的,在这种原创 2008-04-11 17:34:00 · 1109 阅读 · 0 评论 -
Delphi 的RTTI机制浅探一
作者:Savetime|savetime2k@yahoo.com 转贴自:Delphibbs.com目录===========================================================⊙ RTTI 简介⊙ 类(class) 和 VMT 的关系⊙ 类(class)、类的类(class of class)、类变量(class variable) 的关系⊙原创 2008-04-11 17:30:00 · 799 阅读 · 0 评论 -
浅谈Object Pascal的指针
大家都认为,C语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。因此,说指针是C语言的灵魂,一点都不为过。同时,这种说法也让很多人 产生误解,似乎只有C语言的指针才能算指针。Basic不支持指针,在此不论。其实,Pascal语言本身也是支持指针的。从最初的Pascal发展至今 的Object Pascal,可以说在指针运用上,丝毫不会逊色于C语言的指针。 以下内容分为八个部分,分原创 2008-04-11 18:01:00 · 1150 阅读 · 0 评论 -
Delphi 的持续机制浅探
目 录===============================================================================⊙ DFM 文件与持续机制(persistent)⊙ ReadComponentResFile / WriteComponentResFile 函数⊙ Delphi 持续机制框架简述⊙ 一个 TForm 对象的创建过程⊙ TStream原创 2008-04-11 17:34:00 · 1134 阅读 · 0 评论 -
强大的DELPHI RTTI--兼谈需要了解多种开发语言
风焱在《“18般武艺”?》中说到他碰上的被多种语言纠缠的问题。我在回复里说: 很多语言只要能看懂几分就行了,没必要每一种都精通 但是如果只会很少的一两种语言也是不行的。因为看了一些关于Java的反射技术的应用,忽然想到Delphi的RTTI也很强,于是试着拿数据集下手,用RTTI来实现它的对象化。用了两个晚上时间就搞定了(要不是因为开始时搞错对象--基类用了TObject,其实应该是用TPer原创 2008-04-11 17:32:00 · 854 阅读 · 0 评论 -
Delphi 的RTTI机制浅探二
本文上篇基本上是 RTTI 入门介绍,续篇介绍了所有 TypInfo.pas 中的函数,附加了 Classes.pas、Graphics.pas、Controls.pas 中的几个 RTTI 相关函数。对于关键函数的代码提供汇编注释。希望本文覆盖了 Delphi 中 80% 的 RTTI 函数。时间仓促,错误难免,敬请批评指正。本文排版格式为: 正文由窗口自动换行;所有代码以 80 字原创 2008-04-11 17:31:00 · 893 阅读 · 0 评论 -
多线程程序设计
原创 2007-12-29 10:18:00 · 729 阅读 · 0 评论 -
Delphi中initialization和finalization
注:本文主要是讨论delphi程序启动时和退出时的执行顺序,期间有些知识来源于Delphi帮助,有些来自《Delphi7程序设计教程》(这本书只告诉我有initialization 和 finalization 这两个关键字,但是没讲明白)(唉,现在的书只讨论框框架架,不讨论细节,写出来的东西让你看能看懂,别人一问或者自己一想,就是什么都不懂!讲的不细致呀!唉,自己琢磨吧!!)。代码用两排‘*’标原创 2008-02-27 17:55:00 · 6098 阅读 · 1 评论 -
得到指定文件夹内文件名
procedure TForm1.displaykind(parentnode: TTreeNode; sDirName: string);var i,hFindFile:integer; ss,tfile:String; FindFileData:WIN32_FIND_DATA; _Pos : Integer; sArtist,sFi原创 2008-02-13 09:30:00 · 850 阅读 · 0 评论 -
软件welcome窗口代码
program dxG10000;uses Forms, main in main.pas {fmMain}, splash in splash.pas {fmSplash}, dxGridMenus in ../DemoUtils/dxGridMenus.pas;{$R *.RES}begin fmSplash := TfmSplash.Create(nil);原创 2008-10-05 23:07:00 · 988 阅读 · 0 评论 -
Delphi与SQL Server存储过程编程详解
Delphi与SQL Server存储过程编程详解 前言 经常有很多初学者问到在delphi中如何调用SQL Server的存储过程?问题其实很好解决,但问得多了,也就不愿答了。下面我将用实例进行说明,从在SQL Server中创建存储过程到调用的完整实例。 首先,打开sql server管理器,在pubs数据库中建一个测试表,表名为test,字段有id,name,和d原创 2008-11-26 13:51:00 · 4167 阅读 · 0 评论 -
Delphi 的编译指令
一个程序从无到有的过程是这样的: 编辑代码 -> 预处理 -> 编译(成dcu等) -> 链接(为exe等). 什么是预处理? 譬如 VCL 中有很多代码是兼容 Linux 的, 在 Windows 下就需要在编译之前预处理掉那些 for Linux 的代码.1、判断操作系统: 其中的 "MSWindows" 和 "LINUX" 就是 Delphi 预定义的 "条件标识符"转载 2012-06-11 15:50:56 · 1003 阅读 · 0 评论 -
辨析 Field、FieldDef、Fields、FieldDefs、FieldList、FieldDefList
<br />1、Fields 是 Field 的集合, 它们主要用于运行时对字段元数据和字段值的访问.<br />2、FieldDefs 是 FieldDef 的集合, 它们主要用于构建数据集(表)和对字段元数据的访问.<br />3、FieldList 和 FieldDefList 分别是访问 Field 和 FieldDef 的快捷列表; 主要使用其 FieldByName、Find 方法和默认的数组属性访问数据; 它们是只读的.<br />4、通过 Fields、FieldList、Field 可以得原创 2011-05-08 19:27:00 · 4668 阅读 · 0 评论 -
DELPHI enablecontrols,disablecontrols函数
<br />DisableControls方法是在程序修改或后台有刷新记录的时候切断数据组件,如TTABLE、ADOQUERY等等与组件数据源的联系。如果没有切断,数据源中只要一有数据的改动,尤其是批量改动的话,每一笔的改动都会更新窗口中数据浏览组件的显示,这样会急剧减慢处理过程而且浪费时间。EnableControls的作用相反,用来恢复TTABLE等组件与DATASOURCE的联系,并促使数据浏览组件更新显示。<br /> 这两个函数主要阻止组件感应显示,以加快语句执行速度。 比如,用大量的循原创 2011-05-08 19:50:00 · 1052 阅读 · 0 评论 -
Delphi下调用有返回值的存储过程
<br />对于存储过程的调用使用的控件TADOStoredProc。<br />创建方法和连接都很简单。<br />StorPro:=TADOStoredProc.Create(nil);<br />然后定义存储过程的名字和输入参数:<br />StorPro.ProcedureName:=ProName;<br />StorPro.Parameters.clear;<br />StorPro.Close;<br />StorPro.Parameters.CreateParameter('as_gh',原创 2011-05-08 19:30:00 · 4423 阅读 · 1 评论 -
TDataSet控件的locate查找方法
<br />TDataSet控件以及它的继承控件,例如TSimpleDataSet/TClientDataSet等都可以使用Locate方法在结果数据集中查寻数据。程序首先必须使用SQL命令从后端数据库中取得数据并且形成结果数据集,然后才使用Locate方法查寻数据。 <br /> <br />当使用Locate方法查寻数据时,开发人员可以使用任何的字段条件来查寻,而无须理会这个字段是不是索引字段。当然,当开发人员使用索引字段来查寻数据时,Locate会直接使用索引来帮助查寻,因此速度会非常快速。如果开发人转载 2010-10-11 10:37:00 · 1925 阅读 · 0 评论 -
获取 设置文件时间
[获取时间程序片段] var filehandle: Cardinal; ofstruct: _OFSTRUCT; fileinformation: _BY_HANDLE_FILE_INFORMATION; tempfiletime: FILETIME; systemtime: _SYSTE原创 2010-05-25 10:32:00 · 1245 阅读 · 0 评论 -
Delphi中ADO异步执行方式
当A D O开始处理数据后,应用程序必须等到A D O处理完毕之后才可以继续执行。但是除了同步执行方式之外, A D O也提供了异步执行的方式,允许当A D O处理时,应用程序仍然能够先继续执行。而当A D O处理数据完毕之后, A D O会以事件的方式通知应用程序,此时应用程序可以再根据A D O执行的结果来采取相应的动作。使用异步执行方式有许多用途,例如,如果应用程序需要处理花费大量时间的动作,那么A D O可以选择以异步执行方式让A D O在后台执行,而让应用程序继续处理图形用户接口或用户输入的数据。原创 2010-07-17 16:17:00 · 4127 阅读 · 0 评论 -
用Delphi创建服务程序
delphi服务程序:用Delphi创建服务程序Windows 2000/XP和2003等支持种叫做/"服务/"东西.作为服务启动有以下几个好处:(1)不用登陆进系统即可运行.(2)具有SYSTEM特权.所以你在进程管理器里面是无法结束它.笔者在2003年为公司开发机顶盒项目时候,曾经写过课件上传和媒体服务,下面就介绍下如何用Delphi7创建个Service.运行Delphi7,选择菜单File转载 2009-10-09 22:35:00 · 9857 阅读 · 0 评论 -
adoquery filter使用
adoquery filter使用2008-09-10 23:41adoquery filter使用//hanshuming like g% 编辑器中filter属性值过滤所有G打头的////代码中adot.Filter:=hanshuming+ +like+ +G%;//adot.Filtered:=true;代码中字符串三对单原创 2009-03-29 12:24:00 · 6703 阅读 · 0 评论 -
TClientDataSet的使用
TClientDataSet控件继承自TDataSet,其数据存储文件格式扩展名为 .cds,是基于文件型数据存储和操作的控件。该控件封装了对数据进行操作处理的接口和功能,而本身并不依赖上述几种数据库驱动程序,基本上能满足单机"瘦"数据库应用程序的需要。1.TClientDataSet的基本属性和方法介绍 1).FieldDefs: 字段定义列表属性 开发者可通过单击属性编辑器中该原创 2009-03-26 23:56:00 · 4506 阅读 · 1 评论 -
如何得到动态链接库的输出函数tdump命令
有的时候,我们需要查看一个动态链接库的输出函数列表,有很多软件可以满足此要求,比如说 exeScope。不过,去下载一个软件总归是很麻烦,Delphi 本身就自带一个类似的工具,那就是 tdump.exe,Delphi 的所有版本都有,是一个命令行程序,在 Delphi 安装目录的 Bin 目录下。用法:tdump.exe D:/example.dll以上命令将在控制台输出该 DLL 导出的函原创 2009-03-07 10:15:00 · 1602 阅读 · 0 评论 -
delphi 精要-读书笔记(内存分配释放)
delphi 精要-读书笔记(内存分配释放) 1.内存分为三个区域:全局变量区,栈区,堆区全局变量区:专门存放全局变量栈区:分配在栈上的变量可被栈管理器自动释放堆区:堆上的变量内存必须人工去释放2.指针类变量指针类的变量在声明为全局变量时被初始化为空值,在声明为局部变量时则初始化为一个随机数,对于指针类型一般要使用一些代码来完成内存分配3.动态分配内存的函数和过程原创 2008-02-13 09:26:00 · 1223 阅读 · 0 评论 -
DBGRIDEH 组件在Borland开发工具中应用全攻略
DBGRIDEH 是Enlib 3.0组件包中的组件之一。Enlib 3.0组件包是一位俄国人为增强Borland系列开发工具功能而开发的第三方组件,它具有界面友好、功能强大、开发效率高、、快速制作预览/打印简单中国式报表等特点。因此,一推出即受到广大Borland程序员的青睐。目前这个版本支持Borland Delphi versions 4,5,6&7 和 Borland C++ Builde原创 2008-02-13 09:28:00 · 1084 阅读 · 0 评论 -
用Delphi获取当前系统时间
在开发应用程序时往往需要获取当前系统时间。尽管Y2K似乎已经平安过去,但在我们新开发的应用程序中还是要谨慎处理“时间”问题。在《融会贯通--Delphi4.0实战技巧》(以下简称“该书”)第89页专门介绍了两种获取当前系统时间的方法,但这两种方法都存在不足或错误,以下就此进行讨论。该书第一种方法是利用Time()函数获得当前系统时间,返回结果是TDateTime结构类型的变量。例如:p原创 2008-02-13 09:20:00 · 2605 阅读 · 0 评论 -
delphi 2006-05笔记
2006年5月8日星期一VCLSkin的使用How to skin a applicationA. Skin file store in exe file. 1. Put TSkindata component on mainform2. Set Skindata.skinstore property , store skin file in your application.原创 2006-05-11 23:10:00 · 2691 阅读 · 0 评论 -
delphi——TGauge类的定义在哪个单元中定义的?
今天顺便看了看TGauge(标准尺)这个控件的用法,感觉挺简单,也不错重要属性:BackColor 背景色ForeColor 前景色MaxValue 最大值MinValue 最小值progress 前进,进度 当前的进度Kind 类型 可设置不同的外观形状TGauge类在哪个单元中定义的?为什么在窗体上添加了一个TGauge对象后,查找TGau原创 2006-05-10 22:52:00 · 2902 阅读 · 0 评论 -
delphi 书籍
object pacsl 参考手册delphi程序设计与开发技术大全原创 2006-05-10 23:07:00 · 1368 阅读 · 1 评论 -
VCLSkin的使用
How to skin a applicationA. Skin file store in exe file. 1. Put TSkindata component on mainform2. Set Skindata.skinstore property , store skin file in your application.3. Set Skindata.active =原创 2006-05-10 22:56:00 · 3276 阅读 · 0 评论 -
TApplication大全
TApplication大全Tapplication : HandleException 为应用程序提供异常的默认处理方法。 void__fastcall HandleException(System::TObject*Sender); 当执行产生一个不响应Windows信息的事件的定制组件时,HamdleException过程对组件记录器有用。为应用程序设定异常处理方法代码,使用OnEx转载 2006-04-25 11:32:00 · 2298 阅读 · 0 评论 -
控制INI文件几法
控制INI文件几法 要利用.INI文件做程序有关数据的存储工作,就需要能读和写.INI文件,所以列了如下方法给大家参考: 从.INI文件中获取字符串 var strResultscreen.width/2)this.style.width=screen.width/2;" border="0" src="http://www.blogcn.com/images/tongue.gif" /原创 2006-04-23 00:02:00 · 1307 阅读 · 0 评论 -
ProcessMessages转让控制权
转让控制权 有时由于长时间的循环语句占用了cpu的处理权,无法运行 其他程序,照成死循环。这时用以下命令转让控制权,让操作系统处理其他事件。 Application.ProcessMessages;原创 2006-04-22 23:57:00 · 1548 阅读 · 0 评论 -
打开已注册文件
打开已注册文件的方法 打开Windows已经注册的文件其实很简单,根据以下代码定义一个过程: procedure URLink(URL:PChar); begin ShellExecute(0, nil, URL, nil, nil, SW_NORMAL); end; 在要调用的地方使用 URLink(Readme.txt); 如果是链接主页的话,那么改用 URLink(原创 2006-04-22 23:54:00 · 1255 阅读 · 0 评论 -
delphi 公历转农历函数
delphi 公历转农历函数方法一unit DateCn; interface uses Windows, SysUtils, Controls; const //农历月份数据,每年4字节,从1901年开始,共150年 //数据来源:UCDOS 6.0 UCT.COM //分析整理:Copyright (c) 1996-1998, Randolph //数据解析:原创 2006-04-23 00:04:00 · 6306 阅读 · 1 评论 -
delphi怎样调用外部EXE文件
delphi怎样调用外部EXE文件delphi怎样调用外部EXE文件 方法一 uses WinProcs; …… begin WinExec(......); …… end. 和调用Pascal库函数没什么两样。 方法二 用ShellExecute更好,在USES段加入SHELLAPI,使用时如:原创 2006-04-22 23:39:00 · 3450 阅读 · 0 评论 -
得到执行程序的目录
得到执行程序的目录 SysUtils 单元中有 ExtractFileDir 与 ExtractFilePath两个类似的函数, 用哪一个?没有太大的关系。 不过有以下的差别: ExtractFilePath 传回值的最後一个字元是反斜杠“/”。 procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(Extr原创 2006-04-22 23:56:00 · 1111 阅读 · 0 评论 -
Delphi快捷键
Delphi快捷键选中窗体 : 先选中任一控件,SHIFT+鼠标左键将鼠标指向变量名、单元名、类名,再用 CTRL+鼠标左键,可找到相应的说明 esc选择上层对象 SHIFT+CTRL+E 显示 EXPLORERf11 属性 f9运行 crtl+f9 编译 crtl + shift + n (n=1,2,3,4......)定义书签 crtl + n (n=1,2,原创 2006-05-18 21:09:00 · 2232 阅读 · 0 评论