随笔分类 -  delphi

delphi
Delphi公用函数单元
摘要:{*******************************************************}{ }{ Delphi公用函数单元 }{ }{ 版权所有 (C) 2008 }{ ... 阅读全文

posted @ 2014-01-26 14:52 leon_kin 阅读(2375) 评论(0) 推荐(0)

数据敏感控件的制作。
摘要:八、数据敏感控件的制作。Delphi的一大亮点就是它的数据库开发能力。而数据敏感组件则在这中间起着很重要的作用。在Delphi的Data Control页面下的控件都是用于显示和编辑数据库中的数据的。相信大家已经体会到数据敏感控件的好处了。我们这一节就给大家演示一下数据敏感控件的开发方法。需要提醒大家的是,不像其他体系的控件,数据敏感控件并没有一个统一的基类,只要是从TwinControl类或其子类派生就可以,数据敏感控件的特殊之处就在于我们下面提到的数据连接。相信用Delphi开发过数据库的人一定对delphi中没有一个日期数据敏感控件而恼火。每次都要我们自己处理数据的更新与显示。所以我们就 阅读全文

posted @ 2013-07-23 13:35 leon_kin 阅读(334) 评论(0) 推荐(0)

自定义一个消息
摘要:定义一个消息需要两个步骤: 1.声明一个消息标识符 2.声明一个消息记录类型一个消息标识符是一个整数大小的常数。Windows自用低于1024的消息,所以当你声明你自己的消息,你应该开始高于这一数字。 常数WM_APP代表了用户定义的消息开始编号。当定义消息标识符,你应该基于WM_APP它们。(这是因为WM_USER所代表1024以后的消息编号,有一些已经被Windows标准组件占用了,为了避免冲突,使用WM_APP) 如果你想给你的消息一个有用的参数名,你需要声明该消息的消息记录类型。消息记录是传递给消息处理方法的参数类型。如果你不使用消息的参数,或者如果你想使用旧风格的参数表示法(wPar 阅读全文

posted @ 2013-07-11 11:20 leon_kin 阅读(319) 评论(0) 推荐(0)

实现已生成组件的拖动
摘要:Perform(Msg: Cardinal; WParam: WPARAM; LParam: LPARAM): LRESULT; overload;其中Msg用WM_SYSCOMMANDWParam用SC_SIZE OR 9LParam用0就可以实现已生成组件的拖动。?123456procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin ReleaseCapture; Button1.Perform(WM_SYSCOMMAND 阅读全文

posted @ 2013-07-11 08:41 leon_kin 阅读(380) 评论(0) 推荐(0)

Delphi过程函数传递参数的几种方式
摘要:在Delphi过程、函数中传递参数几个修饰符为Const、Var、Out。另一种不加修饰符的为默认按值传递参数。一、默认方式以值方式传递参数procedure TForm1.ProcNormal(Value: string);beginOrigNum:=Value+' Me';lblReturn.Caption:=OrigNum;//OrigNum为'Hello Me'lblOrig.Caption:=Value;//Value为'Hello'end;调用:OrigNum:='Hello';ProcNormal(OrigNum); 阅读全文

posted @ 2012-09-04 20:51 leon_kin 阅读(233) 评论(0) 推荐(0)

Delphi封装类到DLL
摘要:一个公共单元unit ITest; interface type IT = interface function GetString:string; procedure ShowMsg(p:PChar); procedure Msg; end; implementation end.类单元,这个写在DLL里面的unit UTest; interface uses SysUtils, Windows, ITest; type TTest = class(TInterfacedObject,IT) private i:Int... 阅读全文

posted @ 2012-08-30 21:32 leon_kin 阅读(351) 评论(0) 推荐(0)

Delphi Project 之工程选项(Project Options)
摘要:Delphi Project 之工程选项(Project Options)工程选项是另一个容易忽视的特性。因为对于初学者,缺省设置就足够用了。毕竟,当一个人忙于学习一个新编程环境时,哪有时间去关心那些编译器/链接器选项呢?但是,到一定时候,就会开始对这些选项感兴趣,并想知道它们是作什么用的。下面将讲述工程选项对话框。可从主菜单选择【Project | Options】来调用该对话框。工程选项对话框是一个多页面对话框,它有如下页面:FormsApplicationCompilerCompiler MessagesLinkerDirectories/ConditionalsVersion Info 阅读全文

posted @ 2012-08-25 14:43 leon_kin 阅读(448) 评论(0) 推荐(0)

Delphi修改Access密码,压缩与修复,建立Access数据库文件
摘要:1 unit UAccessOperate; 2 3 interface 4 5 uses Windows, Sysutils, ComObj, Dialogs, ActiveX; 6 7 8 9 //修改ACCESS数据库密码 10 function ChangeDatabasePassword(AFileName,AOldPassWord,ANewPassWord:string):boolean; 11 12 //压缩与修复数据库,覆盖源文件 13 function CompactDatabase(AFileName,APassWord:string):bo... 阅读全文

posted @ 2012-07-04 15:44 leon_kin 阅读(683) 评论(0) 推荐(0)

TStringGrid的应用
摘要:StringGrid行列的增加和删除typeTExCell = class(TStringGrid)publicprocedure DeleteRow(ARow: Longint);procedure DeleteColumn(ACol: Longint);procedure InsertRow(ARow: LongInt);procedure InsertColumn(ACol: LongInt);end;procedure TExCell.InsertColumn(ACol: Integer);beginColCount :=ColCount +1;MoveColumn(ColCount- 阅读全文

posted @ 2012-06-22 21:31 leon_kin 阅读(418) 评论(0) 推荐(0)

用ADO控件读EXCEL或DBF文件
摘要:用ADO连接Excel设置属性ConnetionString选择 Microsoft Jet 4.0 OLE DB providerSelect or enter a datasorce name -> 选择你要打开Excel文件User name默认是Admin 密码默认为空,可以不用理会Extended properties 设为:Excel 8.0sql语句 select * from [yourtablename] (注意要有[])更详细的请看这一篇:在DELPHI中使用ADO直接访问Excel数据文件摘 要:在DELPHI中使用ADO直接访问Excel数据文件关键字:ADO E 阅读全文

posted @ 2012-05-04 13:42 leon_kin 阅读(1102) 评论(0) 推荐(0)

c中的类型用Delphi来表示
摘要:Object Pascal的指针一、类型指针的定义。对于指向特定类型的指针,在C中是这样定义的:int *ptr;char *ptr;与之等价的Object Pascal是如何定义的呢? varptr : ^Integer;ptr : ^char; 其实也就是符号的差别而已。二、无类型指针的定义。C中有void *类型,也就是可以指向任何类型数据的指针。Object Pascal为其定义了一个专门的类型:Pointer。于是,ptr : Pointer;就与C中的void *ptr;等价了。三、指针的解除引用。要解除指针引用(即取出指针所指区域的值),C 的语法是 (*ptr),Object 阅读全文

posted @ 2012-05-02 15:06 leon_kin 阅读(372) 评论(0) 推荐(0)

delphi 函数指针
摘要:Pascal 中的过程类型与C语言中的函数指针相似,为了统一说法,以下称函数指针。函数指针的声明只需要参数列表;如果是函数,再加个返回值。下面讲解指向非对象(一般的)函数/过程的函数指针。例如声明一个过程类型,该类型带一个通过引用传递的整型参数:type IntProc = procedure (var Num: Integer); //IntProc是指向过程的函数指针这个过程类型与任何参数完全相同的例程兼容,即用它声明的变量,可以指向任何此类函数,并通过其进行函数的调用。下面是一个兼容例程:procedure DoubleTheValue (var Value: Integer);beg. 阅读全文

posted @ 2012-05-02 15:01 leon_kin 阅读(1627) 评论(0) 推荐(0)

DELPHI的BPL使用
摘要:了解BPL和DLL的关系将有助于我们更好地理解DELPHI在构件制作、运用和动态、静态编译的工作方式。对初学DELPHI但仍对DELPHI开发不甚清晰的朋友有一定帮助。BPL vs. DLL(原文http://www.delphi3000.com/ 翻译:房客)第一部分:有关包的介绍一般我们编写编译一个DELPHI应用程序时,会产生一个EXE文件,也就是一个独立的WINDOWS应用程序。很重要的一点:区别于Visual Basic,DELPHI产生的是预先包裹的应用程序是不需要大量的运行库(DLL's)。假设:打开Delphi默认的工程(只有一个空白form),F9她将编译生成一个大约 阅读全文

posted @ 2012-05-01 21:27 leon_kin 阅读(2038) 评论(0) 推荐(0)

Delphi开发经验谈
摘要:日期:2012年2月27日 作者: 人气:11 查看:[大字体 中字体 小字体] 开发环境-------- Delphi 7是一个很经典的版本,在Win2000/XP下推荐安装Delphi 7来开发软件,在Vista下推荐使用Delphi 2007开发软件。安装好Delphi 7后,应立即安装Delphi 7 Update Pack 1,Delphi 2007则建议尽量安装最新的版本。工欲善其事,必先利其器,为了提升开发效率,为了能更加得心应手的处理接下来的开发工作,我们有必要安装一些有用的开发辅助工具(Delphi将此类插件以Expert命名)。首先推荐的是DelForExp这个源代码格式化 阅读全文

posted @ 2012-02-27 11:53 leon_kin 阅读(452) 评论(0) 推荐(0)

禁止TEdit或TMemo的“Ctrl+V”粘贴
摘要:今天去About.com逛了逛,学到一点东西,记下来No "Paste" for you!To intercept any key combination for a TEdit (or TMemo or more generally TCustomEdit) you need to handle the OnKeyDown event. Put a TEdit named "Edit1" on a form (named "Form1"). Handle Edit1's OnKeyDown event as: uses Cl 阅读全文

posted @ 2012-02-24 06:39 leon_kin 阅读(271) 评论(0) 推荐(0)

datasnap 2010 心跳包,连接断开处理
摘要:datasnap 2010 心跳包,连接断开处理procedure TMainForm.DSServer1Connect(DSConnectEventObject: TDSConnectEventObject);var// RowIndx: Integer;InVal: TCP_KeepAlive;Ret: DWORD;ClientConnection: TIdTCPConnection;beginEnterCriticalSection(CSConnect);try // 最大连接数量,验证来访者密码 if (ConnectCount >= 500) or (DSConnectE... 阅读全文

posted @ 2012-02-22 20:12 leon_kin 阅读(850) 评论(0) 推荐(0)

Delphi报表开发ReportMachine的小计和总计的计算
摘要:Delphi报表开发ReportMachine的小计和总计的计算2011年7月2日 分类: Delphi, 开发笔记最近在做一个Delphi的发货清单的打印程序,其中涉及到需要计算清单的小计和总计的功能,文字难以表达清楚,上图吧:报表第一页的小计计算当前页面的商品价格总和,总计目前和小计一样是计算截止到当前页面的所有商品的金额和,下图为最后一页:这下大家明白了吧,就是要实现这样的报表。废话不多说了,开始讲解我的思路:1.既然要计算小计,就是每页的金额和了,加入ReportMachine的计算文本框(TRMCalcMemoView),然后设置要汇总的字段值为数据字段“factSum”,然后选择计 阅读全文

posted @ 2012-02-22 19:35 leon_kin 阅读(2287) 评论(0) 推荐(0)

合并BPL包图文教程
摘要:Delphi IDE 本身就是一个插件模式的工具,插件的好处不用多说。运行包的BPL,其实就是众多单元的集合,因此可以再次重新组合,只要你将各个BPL包用到的单元再组合一次!本文以 http://code.google.com/p/tangram-plugin-framework/插件框架自带的BPL包合并向导工具做一次图文介绍!1、安装好开源插件框架 tangram-plugin后,然后点击 菜单 File->New->Others,找到tangram FrameWork里的包合并向导,2、Dev控件堪称独孤求败,最强也是最肥的数据库解决方案。我们以Dev套件包为准,合并Dev几 阅读全文

posted @ 2012-02-22 19:26 leon_kin 阅读(433) 评论(0) 推荐(0)

DELPHI编程用SQLDMO呈现带进度条的SQL Server数据库Databnse备份!
摘要:假如写成线程方法效果更好,共享!先导入SQLDMO生成SQLDMO_TLB.pas文档unit Unit3;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs,SQLDMO_TLB, StdCtrls, ComCtrls,comobj;typeTForm3 = class(TForm)Button1: TButton;ProgressBar1: TProgressBar;procedure Button1Click(Sender: TObject);priv 阅读全文

posted @ 2012-02-22 19:24 leon_kin 阅读(442) 评论(0) 推荐(0)

网上摘的 杀进程函数
摘要:需要引用单元 Tlhelp32function KillTask(ExeFileName: string): integer; //杀进程函数const PROCESS_TERMINATE = $0001;var ContinueLoop: BOOL; FSnapshotHandle: THandle; FProcessEntry32: TProcessEntry32;begin result := 0; FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);//取得系统快照 FProcessEntr... 阅读全文

posted @ 2012-02-21 15:26 leon_kin 阅读(297) 评论(0) 推荐(0)