随笔分类 - Delphi
摘要:------------------------------------------------------- ◇删掉程序自己的exe文件 procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); var F:TextFile; begin AssignFile(F,'delself.bat'); Rewrite(F);{F为TextFile类型} WriteLn(F,'del '+ExtractFileName(Application.ExeName)); WriteLn(F,
阅读全文
posted @ 2013-11-19 08:50
麦麦提敏
摘要:delphi 换行操作我将我的商用《旅行社管理系统》的 发团通知 部分奉献给您,望对您有所帮助。 procedure TFrmMain.N327Click(Sender: TObject); var FWord :Variant; FDoc :Variant; strSQL :string; begin //首先创造对象,如果出现异常就做出提示 try FWord := CreateOleObject('Word.Application'); //WOrd程序的执行是否可见,值为false时,程序在后台运行。 FWord.Visible := True; except mess
阅读全文
posted @ 2013-10-21 13:13
麦麦提敏
摘要:先看一个非多线程的例子, 代码执行时不能进行其它操作(譬如拖动窗体):{自定义方法: 在窗体上绘制...}procedure MyMethod;var i: Integer;begin for i := 0 to 500000 do begin Form1.Canvas.Lock; Form1.Canvas.TextOut(10, 10, IntToStr(i)); Form1.Canvas.Unlock; end;end;{调用上面的自定义方法}procedure TForm1.Button1Click(Sender: TObject);begin MyMethod;end;修改为多线...
阅读全文
posted @ 2013-10-21 11:28
麦麦提敏
摘要:XP 之后, Delphi 动注册表不方便了...逼出来一个办法:手头的程序需要修改注册表, 以让当前程序成为某格式的默认打开程序并关联图标; Vista 之后需要管理员权限才能操作注册表, 很麻烦, 所以有了下面的尝试.unit Unit1;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;type TForm1 =...
阅读全文
posted @ 2013-10-21 11:14
麦麦提敏
摘要:STA 单元 (用到 System.SysUtils.TStringHelper):------------------------------------------------------------------------------------------------------------------------------------------unit STA;interfaceuses System.SysUtils, System.Classes;type TSta = record FSeparator: Char; FArr: TArray>; con...
阅读全文
posted @ 2013-10-21 10:58
麦麦提敏
摘要:以前写代码, 总是把主单元弄得满满当当; 现在更喜欢把控件比较独立的功能写成一个单元, 改写属性、重载方法...哪怕只有一点点和默认不同, 也喜欢独立出来.刚刚用到 TListBox, 需要能拖动元素、双击删除.------------------------------------------------------------------------------------------------------------------------------------------------unit ListBox2;interfaceuses System.Classes, Vcl.C.
阅读全文
posted @ 2013-10-21 10:54
麦麦提敏
摘要:uses Winapi.msxml, System.DateUtils;//实时获取网络时间的函数, 得到的是格林威治时间; 默认从 sohu 服务器获取, 因为它最快, 平均只需 15 毫秒function GetNetTime(aUrl: WideString = 'http://www.sohu.com'): string;begin with CoXMLHTTP.Create do begin open('Post', aUrl, False, EmptyParam, EmptyParam); send(EmptyParam); Result := ge
阅读全文
posted @ 2013-10-21 10:48
麦麦提敏
摘要:_StreamADODB_TLBakTop, akLeft, akRight, akBottomControlsApplication (the variable not a type)FormsBeepSysUtils or Windows (different functions)CGID_EXPLORERShlObjCN_BASEControlsCoInitializeActiveXCopyFileWindowsCoUnInitializeActiveXCreateComObjectComObjCreateOleObjectComObjDateSysUtilsDeleteFileSysU
阅读全文
posted @ 2013-10-13 18:21
麦麦提敏
摘要:FastReport安装说明(中文版)内容列表I. IntroductionI. 介绍II. Manual installing of the FastReport packagesII. 手动安装FastReport包。III. Recompiling FastReport Basic Edition and Standard Edition packagesIII. 重新编译FastReport基本版本和标准版包。IV. Recompiling FastReport Pro Edition and Enterprise Edition packagesIV. 重新编译专业版和企业版包。——
阅读全文
posted @ 2013-09-16 23:44
麦麦提敏
摘要:FastReport for delphi xe 安装步骤1、先关闭DELPHI;2、下载后解压到一个目录,比如:D:FR;3、打开D:FR,运行recompile.exe ->点击"Continue"继续 ->1."Select the compiler"选"Embar cadero RAD Studio XE(Delphi,C++)"; ->2."Select the FastReport version"选"Enterprise"(选择你DELPHI XE的版本) -&g
阅读全文
posted @ 2013-09-16 23:40
麦麦提敏
摘要:基于Delphi的三层数据库系统的实现方法1 引言当前的数据库应用系统中,按其结构划分为两类,一类是两层结构的数据库应系统,另一类是多层结构的数据库应用系统。两层结构的数据库应用系统包括客户/服务器(C/S)模式和浏览器/服务器(B/S)模式,它的特点是数据和程序分离,数据库服务器端管理数据,客户机或浏览器显示、访问和更新数据,因此可以分别进行开发和维护,同时也降低了数据库服务器的工作量,减小了网络的流量,具有较强的安全性,但当客户端程序或浏览器较多时,服务器的性能会明显下降,而且应用逻辑安装在每个客户机上,如果系统要升级,就只能对客户机逐一进行,如果客户机分布在不同的地点,维护和升级任务将非
阅读全文
posted @ 2013-09-06 12:16
麦麦提敏
摘要:数据库结构:字段 类型ID 整型 索引(无重复)name 文本father 整型 //tree初始化procedure TForm1.FormActivate(Sender: TObject);var i:integer;begintreeview1.Items.BeginUpdate;while not(adotable1.Eof) dobeginif ADOTable1.FieldValues[father]=0 thentreeview1.Items.addchild(treeview1.DropTarget,ADOTable1.FieldValues[name])elsebegini:
阅读全文
posted @ 2013-09-05 23:43
麦麦提敏
摘要:第十三章 剖析几个数据库应用程序 前面已经详细讲述了Delphi 4的数据库编程技术。为了使读者能够透彻地理解有关编程技术并灵活运用,我们把Delphi 4的几个示范程序拿出来加以剖析,这些示范程序都编得非常有技巧。要说明的是,剖析程序时我们可能会忽略掉一些与主题无关的细节。13.1 一个后台查询的示范程序 这一节详细剖析一个后台查询的示范程序,项目名称叫Bkquery,它可以在C:\Program Files\Borland\Delphi4\Demos\Db\Bkquery目录中找到。它的主窗体如图13.1所示。 图13.1 Bkquery的主窗体 我们先从处理窗体的OnCreate...
阅读全文
posted @ 2013-09-05 23:31
麦麦提敏
摘要:第十二章 使用数据控件 在数据库应用程序中,数据控件是经常要用到的。与前面介绍的数据集构件如TTable、TQuery、TStoredProc、TClientDataSet不同的是,数据控件都是可视的。也就是说,如果修改了这些构件的属性,能在窗体上马上反映出来。如果这些构件的Enabled属性设为True并且数据集的Active属性也设为True,在设计期就可以看到数据。12.1 Delphi 4中有哪些数据控件 在Delphi 4的IDE中,数据控件都位于构件选项板的“Data Controls”页上。下面简单介绍这些数据控件:.TDBGrid以行和列组成的栅格显示数据。.TDBNavi..
阅读全文
posted @ 2013-09-05 23:30
麦麦提敏
摘要:第九章 查询数据库 这一章介绍如何用TQuery构件查询数据库,如何通过SQL语句检索、插入、更新和删除数据。SQL是符合工业标准的关系数据库语言,既可以用于远程的基于服务器的数据库,如Sybase、Oracle、InterBase和Microsoft SQL Server,也可以用于本地数据库如Paradox、dBASE、FoxPro和Access以及符合ODBC的数据库。Array.1 有效地使用查询 要有效地使用查询,必须熟悉标准的SQL语言以及所使用的服务器对SQL-Array2的限制和扩展,同时还要熟悉BDE。Array.1.1 查询桌面数据库 作为一个桌面开发者,应对表格、...
阅读全文
posted @ 2013-09-05 23:29
麦麦提敏
摘要:第十一章 TClientDataSet 与TTable、TQuery一样,TClientDataSet也是从TDataSet继承下来的,它通常用于多层体系结构的客户端。TClientDataSet最大的特点是它不依赖于BDE(Borland Database Engine),但它需要一个动态链接库的支持,这个动态链接库叫DBCLIENT.DLL。在客户端,也不需要用TDatabase构件,因为客户端并不直接连接数据库。 由于TClientDataSet是从TDataSet继承下来的,所以,它支持诸如编辑、搜索、浏览、纠错、过滤等功能。由于TClientDataSet在内存中建立了数据的本地..
阅读全文
posted @ 2013-09-05 23:28
麦麦提敏
摘要:第六章 什么是数据集 Delphi 4中有四种类型的标准数据集构件,分别是TTable、TQuery、TStoredProc和TClientDataSet。这些数据集构件都是从一个共同的基类TDataSet继承下来的,其中,只有TClientDataSet是直接从TDataSet继承下来的,而TTable、TQuery、TStoredProc的直接上级是TDBDataSet,TDBDataSet的上级是TBDEDataSet,TBDEDataSet 的上级才是TDataSet。这几个类之间的继承关系可以用图6.1来表示。 图6.1 数据集的继承关系 TDataSet是所有数据集的抽象基类...
阅读全文
posted @ 2013-09-05 23:26
麦麦提敏
摘要:Fastreport使用经验(转) 在Delphi程序中访问报表对象 最基本的方法就是frxReport1.FindObject。然后把返回的对象强制转换成它的类型,当然,在报表中必须真的有这么个东东。如改变一个Tfrxmemoview的内容,可以这样写TfrxMemoView(frxReport1.FindObject('memo1')).Text:='jade';还可以用TfrxReportPage的FindBand方法,这个方法的参数是Band类,如报表抬头就可以直接使用这个方法,因为抬头一个页中只有一个,如果有多个同样的类。则不能使用这种方法。如果要使用
阅读全文
posted @ 2013-09-05 22:16
麦麦提敏
摘要:多步操作产生错误,请检查每一步的状态值需检查是否是以下这些情况:1.无主键2.字段允许为空3.字段类型不匹配4.字段是不是精度不够。5.ADO控件 CursorLocation的属性,默认值为“clUseClient”,应设为“clUseServer”。
阅读全文
posted @ 2013-09-05 22:15
麦麦提敏
摘要:删除整个目录以往删除目录时,都需要先用递归删干净目录下的文件和子文件夹,这样做的时候,如果文件数量大,那么删除会非常慢; 于是找了个方便一点的方法,直接使用API将目录删除:代码如下:function DelDirectory(const Source: string): boolean;var fo: TSHFILEOPSTRUCT;begin FillChar(fo, SizeOf(fo), 0); with fo do begin Wnd := 0; wFunc := FO_DELETE; pFrom := PChar(Sour...
阅读全文
posted @ 2013-09-05 22:14
麦麦提敏

浙公网安备 33010602011771号