Delphi开发经验
itsoft2006
技术80,性格80,运气80
展开
-
新建MDI子窗体
在子窗体里:FormStyle := fsMDIChildFormClose Action:=caFree;initialization RegisterClass(TFrmRight);//注册类在主窗体里:var frm:TForm;FormClass:TClass;begin FormClass:=GetClass(TFrmRight);//使用GetClass(可以使用字符串型的窗原创 2006-02-12 14:56:00 · 1130 阅读 · 0 评论 -
加载树形结构
表SoftClass:SID 编号 自动编号ATEXT 文字 字符PID 父节点 数字type //软件分类结构 PSoftClass=^TSoftClass; TSoftClass=record SID:String; //软件分类编号 SoftText:String;//分类文字 PID:String;//父编号 end;//查询,返回成功或失败function GetRec原创 2006-05-01 21:07:00 · 882 阅读 · 0 评论 -
多线程查询
实现多线程同步查询的基本思想是,为每一个查询组件(如TQuery组件)创建一个独占的 数据库会话,然后各自进行数据库访问。需要特别注意的是,因为Delphi中的 VCL组件大多都 不是线程安全的,所以应当在线程查询结束后再将DataSource组件与查询组件关联,从而显示 在DBGrid组件中。 下面的例子只实现了静态的线程同步查询,即线程对象是固定的,并随窗体的创建和销毁 而创建和销毁。原创 2006-05-13 17:57:00 · 1306 阅读 · 0 评论 -
Delphi数据集过滤技巧
当我们在操作数据集时,往往需要对数据进行筛眩例如:一个名为Customer的数据表,它具有CustNo、CustName、Country、Address、Phone、State、TaxRate等字段,如果只想查看国别为China或顾客号大于1000的顾客记录,就需要对数据集进行过滤。经总结,有下面这些过滤方法: 一、利用TTable和TQuery的Filter属性 1.在设计时原创 2006-05-16 14:19:00 · 1584 阅读 · 0 评论 -
Delphi中将文件流的数据写入动态数组
varmyfile:TfileStream;mybuf:array of Pchar;beginmyfile:=TfileStream.Create(d:/a.txt,fmOpenReadWrite);setlength(mybuf,myfile.size);myfile.ReadBuffer(mybuf[0],myfile.Size);//delete(String(mybuf),1,myf原创 2007-03-15 22:53:00 · 3572 阅读 · 0 评论 -
使用流和动态数组读写文件
varFileBuf:Array of Byte;//[0..4194304]procedure TForm1.ReadWriteFile(SrcFile, DescFile: String);var MyFile:TMemoryStream; iLen:Int64;begin iLen:=0; try MyFile:=TMemoryStream.Create; MyFile.Loa原创 2007-03-15 22:59:00 · 861 阅读 · 0 评论 -
动态调用DLL
Var LibHandle:HWND; DllName:Procedure(DllHandle:HWND);Stdcall; LibHandle:=LoadLibrary(MyDll.dll); if LibHandle begin MessageBox(Form1.Handle,Not Found MyDll.dll,Error,0); Exit; en原创 2007-03-26 09:56:00 · 798 阅读 · 0 评论 -
listview排序支持
//listview排序支持function CustomSortProc(Item1,Item2:TListItem;ParamSort:Integer):integer;stdcall;var m_bSort:Boolean;//用于控制升序及降序的转换implementationfunction CustomSortProc(Item1, Item2: TListItem;原创 2007-03-30 12:30:00 · 1050 阅读 · 0 评论 -
Delphi判断文件大小
Delphi自身提供了FileSize函数,例如: var f: file of Byte; size : Longint; begin AssignFile(f, f:/t.exe); Reset(f); size := FileSize(f); edit1.text := IntToStr(size);原创 2007-05-31 09:13:00 · 2644 阅读 · 1 评论