作者 关劲松           delphi 开发中有些时候需要停留片刻,等待界面输入,或异步操作完成,如果使用sleep函数的话,整个程序都会停顿,界面还会出现冻结的情况.因此需要自行编写一个delay函数,以毫秒为单位控制等待时间.         函数功能:GetTickCount返回(retrieve)从操作系统启动到现在所经过(elapsed)的毫秒数,它的返回值是DWORD.         Application.ProcessMessages; 主要作用使程序在运行时能够响…
Delphi中使用@取函数地址的问题   例如以下代码:unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs;type  TForm1 = class(TForm)    procedure one();    function two(x,y:integer):integer;  private    { Private declar…
一.Delphi中的四舍五入法     四舍五入是一种应用非常广泛的近似计算方法,针对不同的应用需求,其有算术舍入法和银行家舍入法两种.     所谓算术舍入法,就是我们通常意义上的四舍五入法.其规则是:当舍去位的数值大于等于5时,在舍去该位的同时向前位进一:当舍去位的数值小于5时,则直接舍去该位.     所谓银行家舍入法,其实质是一种四舍六入五留双(又称四舍六入五奇偶)法.其规则是:当舍去位的数值小于5时,直接舍去该位:当舍去位的数值大于等于6时,在舍去该位的同时向前位进一:当舍去位的数值等…
在delphi中Val是一个将字符串转换为数字的函数,Val(S; var V; var Code: Integer)第一个参数是要转换的字符串,第二个参数存放转换后的数字,可以是整数或浮点数,第三个参数存放出错的字符索引值,例如:Var   V, Code: Integer;begin  Val('123.445',V,Code);end; 转换后: V = 123, Code = 4,表示字符串'123.445'转换为整数是123,在字符串第4位转换出错 iif 就是一个缩写的 If ...…
1. 在 FormCreate 中向FastReprot添加函数 (fPrint)窗口 procedure TfPrint.FormCreate(Sender: TObject); frxReport1.AddFunction('function MoneySpeechC(pMoney: Currency): String;','Myfunction','人民币大写金额转换函数'); end; 2. 在FastReport用户函数事件中添加 OnUserFunction function TfP…
TTypeKind,类型类别,tkclass,tkinteger,tkstring等.类,属性都是一种类型. ttypedata,是一个record包括ttypekind.是一个类的描述.TTypeKing只是这许多描述中的一种. GetTypeData函数,获取类的相关信息,当然也包括属性的信息,比如属性published中的proptery的个数等 GetPropList,获取属性信息列表,包括属性名,属性的类型等 GetPropInfo/GetPropInfos 获取类的属性的相关信息,功…
function TransChar(AChar: Char): Integer; begin '] then Result := Ord(AChar) - Ord(') else Result := + Ord(AChar) - Ord('A'); end; function StrToHex(AStr: string): string; var I ,Len: Integer; s:char; begin len:=length(AStr); Result:=''; to len do be…
问题来源: http://www.cnblogs.com/del/archive/2008/11/14/1120015.html#1370413 StrUtils 单元和 Math 单元 分别有一个 IfThen 函数(注意参数是数字还是字符串), 举例: StrUtils 单元和 Math 单元 分别有一个 IfThen 函数, 举例: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Grap…
procedure sdfg.iTimers1Timer4(Sender: TObject);var vsub : Cardinal; vSetinterval: Cardinal;begin vsub := GetTickcount - FCurrSampleTime; vSetinterval := GetCardinalValue(2); if vsub >= vSetinterval then begin iTimers1.Enabled4 := False; end else begi…
1.copy(‘csdn’,1,2) 返回的结果是 cs 注释: Copy有3个参数,第一个是要处理的字符串,第二个是要截取的开始位置,第三个是截取位数 当第三个参数大于字符长度,那么效果就是取开始位置 后的所有字符 2.Pos('3','123456') 返回的结果是 3 注: 取出子串在父串中第一次出现的位置 http://blog.csdn.net/zisongjia/article/details/53428734…
转载自 http://www.cnblogs.com/jieke/archive/2013/01/11/2855782.html 本文介绍了在Delphi中利用系统函数和Windows API函数调用来获取和修改文件的时间信息的方法. 熟悉Windows 95/98的朋友一定经常会用单击鼠标右键的方法来查看所选定的文件的属性信息.在属性菜单中会列 出该文件的创建时间.修改时间和访问时间.这些信息常常是很有用的,它们的设置一般都是由操作系统(也就 是由Dos/Windows等等)自动完成的,不会让…
Delphi StringReplace – 替换字符函数 Delphi中的StringReplace函数是SysUtils单元中自带的函数,该函数可以替换字符串中的指定字符. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 function StringReplace (const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;   // rfReplaceAll:全部替换…
在Windows桌面的任务栏上有一个凹陷的区域,其中显示着系统时钟以及一些图标,这个长方形的区域便是Windows的任务栏状态区(taskbar status area).本文将介绍使用Borland Delphi进行任务栏状态区的编程,即怎样将应用程序的图标显示在任务栏状态区中. ---- 实现原理 ---- 任务栏状态区的图标添加.删除.以及修改是通过Windows API函数Shell_NotifyIcon来实现的,该函数是由Windows的SHELL32.DLL动态联接库提供的.在Del…
1.挂起,不占CPU sleep 2.不挂起,占cpu procedure Delay(msecs:integer); var FirstTickCount:longint; begin FirstTickCount:=GetTickCount; repeat Application.ProcessMessages; until ((GetTickCount-FirstTickCount) >= Longint(msecs)); end; 3.定时器 procedure timerfun(han…
 1.挂起,不占CPUsleep2.不挂起,占cpuprocedure Delay(msecs:integer);varFirstTickCount:longint;beginFirstTickCount:=GetTickCount;repeatApplication.ProcessMessages;until ((GetTickCount-FirstTickCount) >= Longint(msecs));end;3.定时器procedure timerfun(handle:Thandle;…
FastReport调用Delphi中的人民币大写转换自定义函数   FastReport调用Delphi中的人民币大写转换自定义函数 function TJzpzEdit1.MoneyCn(mmje: Double): string; const s1: string = ‘零壹贰叁肆伍陆柒捌玖’; s2: string = ‘分角元拾佰仟万拾佰仟亿拾佰仟万’; function StrTran(const S, s1, s2: string): string; begin Result :=…
delphi函数指针 只有@@p才代表了函数指针本身的地址   assigned(p) 判断是否为空 或者用 @p=nil 来判断函数指针是不是为空 Delphi中的函数指针实际上就是指针,只是在使用的时候有些不同 函数指针要先定义一个函数类型,比如 type TTestProc = procedure of object; 这是一个最简单的函数类型,没有参数,也没有返回值,并且要求是类的成员函数 类的成员函数其实就代表了调用的时候参数的不同,因为类的成员函数隐含着一个对象参数,而不是显式写明,…
由于项目需要,需要在qt下实现floatformat的函数.之前写过一个,但是写得不好.决定重新写一个,参考delphi xe2下的实现.把xe2下的相关代码都看了一遍,xe2的代码思路在这里贴出来.xe2下的代码在system.sysutils下,核心函数是InternalFloatToTextFmt.它有汇编的版本跟纯pascal的版本.汇编看不懂,参考的是纯pascal的版本. 整体流程是: 1)解析format格式化字符串 Result := 0; DecimalSep := AForm…
在Delphi中利用MSDASC来配置数据库链接 在运行期进行数据库的连接是一个问题,自己写一个窗体配置吧,数据库不一样,所用的参数也不一样,还有那讨厌的连接字符串,有时真不知该写什么好.那天无意中发现一个UDL文件,打开时自动弹出标准的数据库链接属性配置窗体,用过ADOConnection的一定知道.可惜的是UDL文件是明码,而且要放在一个目录下,要是能放在注册表中多好,还可以加密存放,我们如何调用这个窗体呢?通过查找注册表,发现打开UDL文件的是MSDASC,再查MSDASC,OK,在OLE…
函数重载重载的思想很简单:编译器允许你用同一名字定义多个函数或过程,只要它们所带的参数不同.实际上,编译器是通过检测参数来确定需要调用的例程.下面是从VCL 的数学单元(Math Unit)中摘录的一系列函数: function Min (A,B: Integer): Integer; overload; function Min (A,B: Int64): Int64; overload; function Min (A,B: Single): Single; overload; functi…
源:Delphi中建立指定大小字体和读取该字体点阵信息的函数 Delphi中建立指定大小字体和读取该字体点阵信息的函数 作者:Thermometer Email:  webmaster@daheng-image.com 由于要控制硬件,需要把矢量的汉字转化为点阵信息写入eprom或在液晶屏上显示,因此用Delphi写了如下的函数,可以把指定的一个汉字(两个字符)转化为点阵信息保存到文件,每个点对应一个二进制位,有文字信息该位为1,否则为0. 目前该函数可以生成指定大小的汉字并可读取点阵字模信息保…
源:Delphi中unicode转汉字函数 近期用到这个函数,无奈没有找到 delphi 自带的,网上找了下 有类似的,没有现成的,我需要的是 支持 “\u4f00 ” 这种格式的,即前面带标准的 “\u”  于是改造了一下. 下面是 解码 函数: 方便有需要的人吧,我自己也需要^_^ /// <summary> /// // Unicode转汉字 ,支持自动过滤非 unicode编码,即非 unicode编码不转换 /// 只支持 标准的 类型 \u4e00 这种格式的 转换, 以\u 开头…
dummyVars函数:dummyVars creates a full set of dummy variables (i.e. less than full rank parameterization----建立一套完整的虚拟变量 先举一个简单的例子: survey<-data.frame(service=c("very unhappy","unhappy","neutral","happy","very…
Delphi中 StrToIntDef函数的用法:比如我要判断一个文本框里输入的字符串能不能转换为integer类型,如果能,则返回转换后的整型数据,如果不能,则返回整数0,那么我就可以用strtointdef这个函数.写法如下:假设edit1.text:='1000';则strtointdef(edit1.text,0)返回值为1000.如果edit1.text:='fdafds',则返回值为0.(如果你用strtoint(edit1.text)当edit1.text:='fdads'时会报错…
.copy(str,pos,num) 从str字符串的pos处开始,截取num个字符的串返回. 假设str为,)=,)='def' .concat(str1,str2{,strn}) 把各自变量连接起来,返回连接后的字符串(长度不能超过255) .length(str) 返回str的字符个数,即其长度. .pos(obj,target) 在target字符串中找出第一个出现obj的第一个字符位置,如果找不到,返回0. .AnsiStrLastChar('你好')结果是“好”.如果有半个汉字出现,…
MD5 与 SHA 在 Delphi 中函数实现. 为了加密密码,必须使用一种算法,查询资料,比较好的方法是使用:MD5等算法,参考:Delphi XE8 支持MD5 第一种方式是:引用 System.Hash 中的 THashMD5, (或者 THashSHA1,THashSHA2) 参考 官方文档. http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.Hash 简单用法:  hashmd5 := THashMD5.Create.G…
前一阵子,研究了一段时间的Win32Asm,研究到后来发现Win32的ASM实际上还是和C版的介绍的一样.甚至还封装了一个简版的类似VCL库结构框架的32ASM结构库,不过搞着搞着就没兴趣了,也没继续往下深入,唉!发现年龄越来越大,人也越来越懒. 休息了好长一阵子,在乱七八糟的东西乱弄一堆之后,总算发现了一个能有点用处的东西,于是就欣欣然跑来记录一下日志博客以为备份. 我们都知道在Delphi,VC等这类静态检测形的语言,如果要使用一个函数,必须要先申明一下此函数结构,然后调用的时候,编译器才会…
delphi中Application.MessageBox函数用法详解 Application.MessageBox是TApplication的成员函数,声明如下:functionTApplication.MessageBox(constText,Caption:PChar;Flags:Longint):Integer;引数:1.Text:要显示的信息2.Caption:信息窗口的标题文字3.Flags:窗体标志(说明是何种类型的信息窗体)3.1.可指定信息窗体上的图标 3.2.可指定信息窗体上…
来自:http://blog.csdn.net/farrellcn/article/details/9096787 ------------------------------------------------------------------------------ 很多书籍中说函数参数如果是String类型的,如果在函数内部不改变参数的值,使用 const 修饰符会加快程序的执行速度,至于如何加快的?有的人说是因为 const 函数保证了参数字符串不会被复制.以前也没有对这个问题深入研究…
在Delphi中使用ShellExecute(handle, 'open', PChar(fname),nil, nil, SW_HIDE)函数应注意的问题: 一.对一般vcl程序及isapi dll(apache isapi dll模块): ShellExecute涉及到的文件(包括执行程序和其他文件),其文件名必须使用全路径名,不能使用相对路径名! 二.对isapi dll(apache isapi dll模块): 对于在apache服务下的isapi dll模块,apache服务的属性要做…