摘要: 因为DELPHI里的一般默认的舍入方式都是用银行家舍入法也就是“四舍六入五成双”的做法,但是这样的做法往往不太适合中国人的习惯于是居然开始有人用判断语句写函数实现,加入很多判断甚至有人用上了字符串处理实现,还被奉为牛B一般其实一般正数的四舍五入到整数可以用 + 0.5取整实现trunc(x+0.5)对于保留小数位的情况,或可以借用 *X 再除 XX := pow(10, 小数位数)网上还提供一种做法,不过测试者对这样的做法不是很自信,但是看起来是可以实现的SetRoundMode(rmTruncate);//這行很重要 doubled=SimpleRoundTo(1.245,-2); Delp 阅读全文
posted @ 2013-04-28 12:56 小天1981 阅读(298) 评论(0) 推荐(0) 编辑
摘要: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls;type TForm1 = class(TForm) RichEdit1: TRichEdit; Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declara 阅读全文
posted @ 2013-04-28 12:55 小天1981 阅读(249) 评论(0) 推荐(0) 编辑
摘要: WaitForSingleObject 等待什么? 在多线程里就是等待另一个线程的结束, 快来执行自己的代码; 不过它可以等待的对象可不止线程; 这里先来一个等待另一个进程结束的例子, 运行效果图:代码文件:<pre>unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Button1: TButton;procedure Button1Click(Send 阅读全文
posted @ 2013-04-28 12:50 小天1981 阅读(822) 评论(0) 推荐(0) 编辑
摘要: 以前要在运行时创建package中的form类,必须要在form单元文件中这样注册类:Initialization RegisterClass(TForm3);Finalization UnRegisterClass(TForm3);然后在调用模块中,通过FindClass或GetClass函数返回一个TPersistentClass,再通过此类引用创建窗口类: AClass := GetClass(ClassName); aForm := TCustomForm(AClass.Create).Create(Application);现在,通过XE中增强的RTTI,也可以完成同样的工作。首先, 阅读全文
posted @ 2013-04-28 12:49 小天1981 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 子线程:procedure TreadThread.Execute;begin inherited; FreeOnTerminate := True; while not Terminated do begin////dosomething; end; Sleep(100); end;end;主线程:var H: array[0..0] of Thandle;begin try H[0] := RCThread.handle;// 安全退出子线程 RCThread.Terminate; if MsgWaitForMultipleObjects(1, H, True, 1000, QS_ALLI 阅读全文
posted @ 2013-04-28 12:47 小天1981 阅读(413) 评论(0) 推荐(0) 编辑
摘要: windows下,有时候结束一个托盘程序的进程会遇到这样的情况,程序退出后,托盘的图标还在,但鼠标移过去之后就消失了,delphi里如何实现刷新托盘呢?用TerminateProcess把一个进程结束后有个问题,就是如果该程序在托盘有图标的话,这个图标并不会在它被结束时也消失。当然你用鼠标从上面移过可以解决这个问题,但本人在用自己的刷新辅助软件“疯狂刷新”的时候,每5分钟结束一次,一天下来如果不动电脑,就会在托盘区生成NNN个死图标,即使你拚命去点,也要点半天才能全部消除。有没有办法一下子搞定它呢?答案是肯定的,在网上搜了很久……用Delphi编写几行代码搞定。添加自定义类型,用作判断系统类型 阅读全文
posted @ 2013-04-28 12:46 小天1981 阅读(750) 评论(0) 推荐(0) 编辑
摘要: CnPack多语组件是CnPack组件包中的一个重要组成部分,主要用来用来实现多语言界面。它们虽未组成可安装的独立组件包,但它们功能相对独立,在组件板上独占一页,和其他组件关联不大。1、最简单的多语组件的使用步骤1.建立一空工程,拖放一些可视化组件在上面。保存。2.拖一TCnHashLangFileStorage,添加一语言条目。3.拖一TCnLangMgr,LanguageStorage设置为刚才的CnHashLangFileStorage1。4.拖一TCnLangTranslator,双击打开翻译管理器,生成语言条目并翻译、保存。5.运行,代码中写CnLanguageManager.Cur 阅读全文
posted @ 2013-04-28 12:44 小天1981 阅读(350) 评论(0) 推荐(0) 编辑
摘要: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, CommCtrl, StdCtrls;type TIpEdit = class(TEdit) procedure CreateParams(var Params: TCreateParams); override; end; TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; procedure Form 阅读全文
posted @ 2013-04-28 12:43 小天1981 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 首先,要确保你对象的成员写在published下。 代码如下://TmyClass定义Type TMyClass=Class(TComponent) private Fage: Integer; Faddress: String; FName: String; published property Name:String Read FName Write FName; property age:Integer Read Fage Write Fage; property address:String Read Faddress Write Faddress; end;//保存procedure 阅读全文
posted @ 2013-04-28 12:38 小天1981 阅读(313) 评论(0) 推荐(0) 编辑
摘要: IIS版本:IIS7.5 (WIN7自带版本)1、添加应用程序(在IIS5里添加的是虚拟目录,IIS7.5里添加虚拟目录后貌似要转换为应用程序)。如下图2、右键你添加的应用程序→编辑权限→安全→编辑→添加Everyone用户,给它必要的权限。如下图 3、在IIS根目录中找到ISAPI和CGI限制选项(注意这个选项在根目录下)。如下图: 进入该选项,添加由ISAPI编写的DLL文件,并且设置为允许。如下图: 嗯,搞定。 阅读全文
posted @ 2013-04-28 12:37 小天1981 阅读(487) 评论(0) 推荐(0) 编辑