
Delphi
文章平均质量分 50
imho888
这个作者很懒,什么都没留下…
展开
-
获取在连接数据库时出错的情况
procedure ShowADOErrors(ErrorList: Errors);var I: Integer; E: Error; S: String;begin for I := 0 to ErrorList.Count - 1 do begin E := ErrorList[I]; S := Format(ADO Error %d of %d:#13#13%s原创 2007-01-13 22:50:00 · 357 阅读 · 0 评论 -
禁止程序重复运行
方法一:var hMutex:hwnd; ret:integer;begin Application.Initialize; hmutex:=createMutex(nil,false,project1); ret:=getlasterror; if ret begin Application.CreateForm(TMainFrm, MainFrm); Applic原创 2007-01-13 23:06:00 · 665 阅读 · 0 评论 -
判断字段类型
dataset.Fields[0].DataType 返回为:ftUnknown, ftString, ftSmallint, ftInteger, ftWord, ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime, ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ft原创 2007-01-13 23:06:00 · 811 阅读 · 0 评论 -
取得机器名和IP地址
//////////////////////////////////////////////取得本机ip和机器名//////////////////////////////////////////////uses winsock; function LocalIP: String; type TaPInAddr = Array[0..10] of PInAddr; PaPInAdd原创 2007-01-13 23:07:00 · 383 阅读 · 0 评论 -
全局出错处理
我的程序中使用了全局出错处理,使用了全局变量aerror判断是否进行全局出错处理还是使用程序中的try...except语句,在try...except语句前置aerror值为2,处理后置 1procedure TFormmenu.AppOnException(Sender: TObject; E: Exception);begin if datam.aerror begin原创 2007-01-13 23:07:00 · 453 阅读 · 0 评论 -
压缩access数据库
uses ComObj;procedure TForm1.Button1Click(Sender: TObject);var X:OleVariant; sourcefiles,tempfiles:string;begin sourcefiles:=E:/xll/model.mdb; tempfiles:=E:/xll/temp.mdb; try X := create原创 2007-01-13 23:08:00 · 423 阅读 · 0 评论 -
在DBGRID中加入序号
var Form1: TForm1; i:integer; bflag,bflag2:boolean; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin adoquery1.Open; end; procedure TForm1.DBGrid1DrawColumnC原创 2007-01-13 23:09:00 · 806 阅读 · 0 评论 -
在状态栏动态加进度条
一般情况下,我们可以创建非模式对话框并在上面显示进度条。如果能够利用状态条,在状态条中动态地添加并显示进度条,将会更加方便直观。下面将讲述如何在Delphi 5中编程实现在状态条中动态地添加进度条。具体的过程如下: 1.在Delphi 5中通过菜单“File/New Application”创建一个新的工程。 2.在窗体中添加一个状态栏组件StatusBar1,一个Button组件Butto原创 2007-01-13 23:10:00 · 642 阅读 · 0 评论 -
自动加入回车和自动下移下一个控件
Procedure TForm1.FormKeyPress(Sender:Tobject;Var Key:Char);Begin if Lenth(Edit_code3.text)=3 then SendMessage(Edit_code3.handle,WM_KEYDOWN,0,13); End;PostMessage(E_Code.Handle,wm_keydown, 13,原创 2007-01-13 23:11:00 · 487 阅读 · 0 评论 -
从内存中加载并运行exe
{配合anskya的AnyWhereFileToPas效果不错} { ******************************************************* } { * 从内存中加载并运行exe * } { *******************************************转载 2009-02-12 10:21:00 · 782 阅读 · 0 评论 -
键值大全
在keydown事件里面showmessage(inttostr(key));在keypress事件里面showmessage(key);就知道了。Form1.KeyPreview := True;procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);beginShowmessage(原创 2007-01-13 23:05:00 · 530 阅读 · 0 评论 -
监听网内msn聊天内容
unit Main;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, WinSock2, StdCtrls, Spin;const WM_Socket = WM_User + 1;type TMainForm = class(TF原创 2007-01-13 23:04:00 · 481 阅读 · 0 评论 -
十六进制的BCD码转成十进制
十六进制的BCD码转成十进制var I:integer; bcd1:tbcd; ibuff:array[0..1] of byte; iBuffstr:string;begin bcd1.Fraction[0]:=$20; bcd1.Fraction[1]:=$05; bcd1.Precision:=4; i:=bcdtointeger(bcd1); showme原创 2007-01-13 22:53:00 · 1452 阅读 · 0 评论 -
cpu设备号
unit Main;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons;type TDemoForm = class(TForm) Label1: TLabel; Labe原创 2007-01-13 22:53:00 · 353 阅读 · 0 评论 -
Ehlib 的使用
2003-12-5 15:17:00 发表评语»»» 2003-12-5 15:22:29 使用 TDBSumList 组件 还记得以前有朋友问过这样一个问题:在 DBGrid 下如何像 Excel 一样能够做统计计算,实话说,使用 DBGrid 来做的话着实不易,不过现在有了这个咚咚,相信会简单些。以下是摘录的一些使用上原创 2007-01-13 22:56:00 · 526 阅读 · 0 评论 -
IdTCPServer和IdTCPClient协议定义问题
type TStructHeaderRec = packed Record Magic: Integer; //包的标记 CmdID: Integer; //命令编号 LPARAM: Integer; //扩展参数 MPARAM: Integer; //扩展参数 DataLen: Integer;//长度 Err: Integer原创 2007-01-13 22:57:00 · 418 阅读 · 0 评论 -
record帮助
Variant parts in records(记录中的变体部分,变体记录)----------------------------------------------------------一个记录类型能拥有变体部分,它看起来就像case 语句,在声明中,变体部分必须跟在其它字段的后面。要声明一个变体记录,使用下面的语法:type recordTypeName = recordfieldLis原创 2007-01-13 22:58:00 · 320 阅读 · 0 评论 -
TCP接收数据
设置 IdTCPServer1.DefaultPort := 10001; IdTCPServer1.Active := True; IdTCPClient1.Host := 服务端地址 IdTCPClient1.Port := 10001; if not IdTCPClient1.Connected then IdTCPClient1.Connect1. 客户端发送:原创 2007-01-13 22:59:00 · 608 阅读 · 0 评论 -
保存字体,加载字体
给你两个函数。//保存字体function SaveFont(MidFont:TFont;FileName,CtrName:String):Boolean;var FontFile:TIniFile;begin Result:=True; FontFile:=TIniFile.Create(FileName); FontFile.WriteString(CtrName, FontNa原创 2007-01-13 23:00:00 · 752 阅读 · 0 评论 -
光盘序号
得到光驱盘符之后我们可以进一步利用API函数GetVolumeInformation检测光驱中是否有光盘,这个函数如果成功调用,会得到磁盘的卷标序列号等信息;如果调用失败则可知光驱中无光盘,程序如下://检测光盘(假设光驱为G:) char volname[255],filename[100];//buffer[512]; DWORD sno,maxl,fileflag ; if (!(原创 2007-01-13 23:02:00 · 806 阅读 · 0 评论 -
Delphi6函数大全-SysUtils.pas
>首部 function Languages: TLanguages; $[SysUtils.pas功能 返回系统语言对象说明 通过此函数可以得到系统的语言环境参考 type SysUtils.TLanguages例子 ///////Begin Languagesprocedure TForm1.Button1Click(Sender: TObject);var I: Integer;原创 2007-01-13 23:03:00 · 671 阅读 · 0 评论 -
还原数据库(SQL)
procedure TForm1.Button5Click(Sender: TObject);//还原之前必须先得到逻辑文件名var sqlstr :string;begin ADOQuery1.ConnectionString :=Provider=SQLOLEDB.1;Password=+EDIT3.TEXT+;Persist Security Info=True;User ID=原创 2007-01-13 23:03:00 · 413 阅读 · 0 评论 -
加密(Crc16)
方法二:结果为10268constCrc16Tab: Array[0..$FF] of Word = ($00000, $01021, $02042, $03063, $04084, $050a5, $060c6, $070e7, $08108, $09129, $0a14a, $0b16b, $0c18c, $0d1ad, $0e1ce, $0f1ef, $01231, $00原创 2007-01-13 23:04:00 · 734 阅读 · 0 评论