
Delphi
jinzhili
这个作者很懒,什么都没留下…
展开
-
当前时间加五分钟
function AddMinute(var aDateTime: TDateTime): String;var n,y,r,x,f,m,hm : word;begin //当前时间加五分钟 aDateTime:=aDateTime+strtodatetime(00:05:00); DecodeDateTime(adateTime,n,y,r,x,f,m,hm); AddMinute原创 2009-02-19 14:58:00 · 1905 阅读 · 0 评论 -
控制只运行一份程序的另一个方法
将以下代码加到 工程文件中 即 .dpr 文件中const iAtom=you exe name; //如jzlVAR Mutex:THandle;begin Mutex:=CreateMutex(NIL,True,you exe name); IF GetLastError begin Application.Initialize; Applicati原创 2007-02-28 11:26:00 · 829 阅读 · 0 评论 -
窗体不出现在任务栏上
uses ShellApi; procedure TForm1.FormCreate(Sender: TObject); begin SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW); end;转载 2007-02-27 09:56:00 · 902 阅读 · 0 评论 -
一个抓屏的小函数
procedure ScreenShot(x : integer; y : integer; Width : integer; Height : integer; bm : TBitMap);var dc: HDC; lpPal : PLOGPALETTE;begin // 检测所需抓屏的区域 if ((Width = 0) OR (Height = 0)) then exit; bm.W原创 2006-12-02 17:48:00 · 890 阅读 · 0 评论 -
控制小数位的另一种方法
利用Str这个函数可以很灵活的来控制小数位,例:它会进行四舍五入var s:string; value : double;begin value := 25.367; str(value:0:2,s); self.caption := s;原创 2006-11-30 17:46:00 · 789 阅读 · 0 评论 -
xp系统中配置DCOM应用服务器
一。协议 要确保XP系统中安装有 NWLink IPX/SPX/NetBIOS Compatible Transport Protocol 协议二。DCOM配置 运行 DCOMCNFG.EXE 我的电脑 -- 属性 默认属性 -- 在此计算机上启用分布式COM 打勾 默认身份验证级别 (无) CO原创 2006-07-24 19:15:00 · 6057 阅读 · 0 评论 -
从DLL中返回一个接口对象
从DLL中返回一个接口对象添加一个Unit单元把类的对外要用到的自定义类型以及接口对象的声明都写上,比如单元名称:unitMyInterface ISendEmail = interface(IInterface) function getEmailType: TEmailType; function getPassWord_pop3: WideString;原创 2006-11-18 09:33:00 · 1806 阅读 · 0 评论 -
如何给HTML Help Workshop 增加搜索功能 版本:4.74
1.双击方案页面中的 WINDOWS ,选择导航窗格页面,选中搜索标签复选框。这样在编译后的CHM文档中会出现搜索页。2.单击方案页面中的 更改方案选项 小按钮,在弹出的窗口中切换到 编译器页面,将 编译全文搜索信息复选框选中,这样在编译好的CHM文档中就有了搜索功能。如果不执行第2步,则只会显示一个搜索页面,而没有搜索功能。原创 2006-07-10 09:11:00 · 4217 阅读 · 1 评论 -
拖动窗体
拖动窗体 ReleaseCapture; SendMessage(Handle,WM_SYSCOMMAND,$f012,0); 示例:procedure TForm.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);begin ReleaseCapture; SendMessage(Handle,WM_原创 2006-11-13 15:52:00 · 645 阅读 · 0 评论 -
得到任务栏的高度
当Form.BorderStyle = bsNone时,最大化会把任务栏给盖住 procedure TForm1.InImage3DblClick(Sender: TObject);begin if TForm(TImage(Sender).parent).WindowState=wsMaximized then begin TForm(TImage(Sender).Parent)原创 2006-11-13 15:49:00 · 934 阅读 · 0 评论 -
窗口自己激活自己
const LSFW_LOCK = 1; LSFW_UNLOCK = 2; function LockSetForegroundWindow(uLockCode: DWORD): BOOL; stdcall;var Form1: TForm1;implementation function LockSetForegroundWindow; external user3转载 2006-11-13 13:28:00 · 2360 阅读 · 0 评论 -
DBGrid单击标题自动排序
procedure TForm1.DBGrid1TitleClick(Column: TColumn);var s,cFieldName:string; i:integer; DataSet:TDataSet;begin Try DataSet:=Column.Grid.DataSource.DataSet; if not DataSet.Act原创 2006-06-23 08:57:00 · 1071 阅读 · 0 评论 -
ClientDataSet的隐含功能------转载《Delphi 从入门到精通》
ClientDataSet的隐含功能------转载《Delphi 从入门到精通》 可能与前面的笔记有重复的地方 ClientDataSet组件支持很多特性,其中一些与三级结构有关,而且还可以用在其他环境中。该组件说明了一个数据库完全映象在内存中,这使得可以进行动态的操作,如建立一个索引,其他数据集合通常不支转载 2006-06-22 17:27:00 · 1616 阅读 · 0 评论 -
改变DBGRID OR EHLIB中当前行的背景颜色
改变DBGRID OR EHLIB中当前行的背景颜色。1.DBGRID//DBGrid1.Options->dgEditing=True //DBGrid1.Options->dgRowSelect=False TYPE TMyDBGrid=class(TDBGrid);如果是 EHLIB 则用 TMyDBGrid=class(TDBGridEH); procedure TFo原创 2007-01-16 11:24:00 · 2308 阅读 · 0 评论 -
实现控件的移动,改变大小(DELPHI实现)
实现控件的移动,改变大小(DELPHI实现)主要使用Perform方法 function Perform(Msg: Cardinal; WParam, LParam: Longint): Longint; 只要能够使用类似于win32API的函数SendMessage(),本方法同样可在其他环境里应用。用Delphi实现首先,建立一个应用程序,在一个窗体里加入一个Panel1,保存为m转载 2007-01-16 13:59:00 · 4061 阅读 · 1 评论 -
RichEdit读取Xls文件,保留表格样式
CxGrid 导出 Exceluses cxGridExportLink;ExportGridToExcel(c: emp.xls,self.cxgrd1);RichEdit读取Xls文件,保留表格样式uses Clipbrd,ComObj;procedure TForm3.btn1Click(Sender: TObject);var xls:variant; begin ur原创 2007-09-18 09:41:00 · 1785 阅读 · 0 评论 -
RxRichEdit高级操作
unit InsertRichEditUnit;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, RichEdit, UHISRichEd;type TEditStreamCallBack = function(dwCookie: Lon原创 2007-09-14 13:20:00 · 3277 阅读 · 0 评论 -
一个递归小函数,用于组合树控件的文本
一个递归小函数,用于组合树控件的文本 function GetText(node : TTreeNode) : string; var i,iLeve : integer; s,sp : string; begin if Assigned(node) then begin s := node.text; if Assigned(node.Paren原创 2007-06-05 21:45:00 · 705 阅读 · 0 评论 -
用于在TComboBox中存储编号的小过程
用于在TComboBox中存储编号的小过程D5procedure jzlLoadStrData(CBB: TComboBox; const S: string; CDS: TClientDataSet);var pID : PChar; sID : string; sName : string;begin if (not CDS.Active) then exit; C原创 2007-06-05 22:10:00 · 755 阅读 · 0 评论 -
CxGrid ,自动行号
unit Unit3;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxD原创 2007-08-09 12:55:00 · 3187 阅读 · 1 评论 -
RichEdit
{*******************************************************}{ }{ Delphi VCL Extensions (RX) }{原创 2007-08-09 10:09:00 · 6633 阅读 · 0 评论 -
cxGrid中每一行记录前都有一个CheckBox的方法
1.双击 Clientdateset,添加一个新的字段check , 类型为 BOOLEAN ,Field Type=fkInternalCalc ReadOnly = False2.在cxGrid 中添加所有的字段,设定check 字段的Properties为 CheckBox . ReadOnly = False;NullStyle = nssUnchecked原创 2007-07-16 21:26:00 · 3130 阅读 · 1 评论 -
cxGrid 最佳列宽
cxGridcolumn.ApplyBestFit(); 做一个循环为调用每个列的 ApplyBestFit 方法。原创 2007-07-17 17:29:00 · 4963 阅读 · 1 评论 -
获得机器名称
function GetComputerName : String;var pcComputer : PChar; dwCSize : DWORD;begin dwCSize := MAX_COMPUTERNAME_LENGTH + 1; GetMem( pcComputer, dwCSize ); try if Windows.GetComputerName( pcCom原创 2007-07-02 11:18:00 · 817 阅读 · 0 评论 -
回车光标自动后移,一个系统消息
KeyDown 事件SendMessage(self.Handle,WM_NEXTDLGCTL,0,0);原创 2007-06-29 09:16:00 · 1010 阅读 · 0 评论 -
Delphi 与网页结合的开发程序主界面
用Delphi 做程序的主框架。利用页面做导航窗口,那么如何才让Delphi来响应页面中的单击操作呢?其实很简单1.在主程序中加一个TWebBrowser组件 用它来显示页面2.在BeforeNavigate2事件中处理响应操作 例如: If Pos(varex:0101, URL)>0 Then begin //执行一些操作 SendMessage(frmMain.Han原创 2007-03-07 14:44:00 · 5196 阅读 · 1 评论 -
用DELPHI设置文件的属性
用DELPHI设置文件的属性1. 在interface下的uses中引用filectrl单元2. 首先取文件属性 var attr : integer; filename : string; begin filename := myfile; attr :原创 2007-03-02 17:32:00 · 3821 阅读 · 0 评论 -
ClientDataSet 配合 DBGrid 实现 点击标题进行 排序
var ASC : Boolean;//是否升序排列procedure TForm1.DsSort(SortColumn: TColumn);var OldIndex:string;begin if (SortColumn.Grid.DataSource=nil) or (SortColumn.Grid.DataSource.DataSet=nil) or (not转载 2006-06-22 17:25:00 · 1951 阅读 · 0 评论 -
解决:不能用163发邮件,用pop3收邮件显示乱码
收发邮件程序:新建一个工程1.解决163不能发信 从C:/Program Files/Borland/Delphi7/Source/Indy目录中找到IdSMTP.pas 将SendCmd(RSET); 注释掉,重新编译,然后覆盖 1.1 C:/Program Files/Borland/Delphi7/Source/Indy中的IdSMTP.pas 1.2 C:/Pr原创 2006-11-08 17:38:00 · 4411 阅读 · 0 评论 -
DBGridEh自动适应列宽
自动调整列的宽度function DBGridRecordSize(mColumn: TColumnEh): Boolean;{ 返回记录数据网格列显示最大宽度是否成功 }begin Result := False; if not Assigned(mColumn.Field) then Exit; mColumn.Field.Tag := Max(mColumn.Field.Tag, T转载 2006-11-04 16:16:00 · 3683 阅读 · 0 评论 -
获取组件在屏幕上的坐标位置
function getscreenpoint(sender: Tcontrol): Tpoint;var clientpoint:Tpoint;begin clientpoint:=point(0,sender.Height); while sender.Parent begin clientpoint:=point(sender.Left+clientpoint.X,s原创 2006-01-20 16:43:00 · 1539 阅读 · 0 评论 -
在TreeView节点中存储编号
在TreeView节点中存储编号function ReadYS(var TV: TTreeView): Boolean;var s : string; sName,sID : string; pID : PChar; NewNode : TTreeNode;begin TV.Items.Clear; s := ; s := select * from mytable;原创 2006-03-09 17:57:00 · 1376 阅读 · 0 评论 -
QQ自动伸缩功能--- 来自网络
procedure TfmMain.Timer2Timer(Sender: TObject);var winPos: TPoint; t: integer; b: boolean;begin b:= false; //小于3个像素 if (fmMain.Top begin b:= true; t:= 0; end //当窗口的(左边距+宽度)-屏幕的宽度 大于 0原创 2006-01-25 10:23:00 · 902 阅读 · 0 评论 -
使子窗体也能出现在任务栏上
procedure TfmBase.FormCreate(Sender: TObject);begin SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_APPWINDOW);end; if not Assigned(fmckxx) then fmckxx := Tfmc原创 2006-01-16 10:36:00 · 736 阅读 · 0 评论 -
输入框下加下划线,以TEdit为例
object Edit1: TEdit BevelEdges = [beBottom] BevelInner = bvNone BevelKind = bkTile BorderStyle = bsNone Ctl3D = False ParentColor = True ParentCtl3D = Falseend原创 2006-01-12 13:24:00 · 853 阅读 · 0 评论 -
保存图片到SQL SERVER2000中。
procedure TForm1.BitBtn1Click(Sender: TObject);var testStream:TMemoryStream;begin //保存图片到SQL SERVER 2000 数据库中 格式为 .JPG if not Assigned(Image1.Picture.Graphic) then exit; try with ADOQuery1 do原创 2005-11-04 17:54:00 · 1770 阅读 · 0 评论 -
当联接数据库时出现不能Connection open file 时,是怎么回事呢?
在XP下开发了一套软件。在2000下进行测试时,发现不能用主机的IP地址进行联接。但是用用户名可以。百思不得其解。如果是在XP下测试是没有问题的。在网上查了半天也没能解决。只是说可能是权限的问题。后经我反复测试得出结果。在2000下不能使用Administrator这个系统用户。一定要新建一个用户,然后以这个用户名进行登陆到系统中。再安装自己的软件,进行测试百试百爽。原创 2005-10-29 14:50:00 · 1202 阅读 · 0 评论 -
ADO联接数据问题。
当用PING 命令 PING IP 和 NAME 都成功的情况下。并且也可以访问共享的文件,但就是数据库联接不上。奇怪的问题。后来一想可能还是和权限有关。于是就把GUEST用户加入了ADMINISTRATOR组中。再一试居然联接成功了。原创 2005-11-01 10:52:00 · 644 阅读 · 0 评论 -
FastReport 套打全攻略
FastReport 套打全攻略 2005-7-13 22:10 原创//以设计套打行为6行为例进行说明一、定义变量 TaoDa 0 是套打 1 不套打 cPage 系统变量 页# caPage 系统变量 总页数 二、TfrPage.OnBeforePrint事件中写{ if TaoDa = 0 then begin title.visible:=false; //原创 2005-10-12 07:36:00 · 7483 阅读 · 0 评论 -
数据库恢复 来自 邹建blog 自已收藏
/*3.--恢复数据库--邹建 2003.10(引用时请保留此信息)--*//*--调用示例--完整恢复数据库exec p_RestoreDb @bkfile=c:/db_20031015_db.bak,@dbname=db--差异备份恢复exec p_RestoreDb @bkfile=c:/db_20031015_db.bak,@dbname=db,@retype=DBNOR原创 2005-09-02 14:36:00 · 1171 阅读 · 0 评论