随笔分类 - 软件开发:Delphi
摘要:方法的类型对象的方法能定义成静态(static)、虚拟(virtual)、动态(dynamic)或消息处理(message)。请看下面的例子:TFoo = classprocedure IAmAStatic;procedure IAmAVirtual; virtual;procedure IAmADynamic; dynamic;procedure IAmAMessage(var M:TMessage); message wm_SomeMessage;end;1. 静态方法IAmAStatic 是一个静态方法,静态方法是方法的缺省类型,对它就像对通常的过程和函数那样调用。编译器知道这些方法的地
阅读全文
摘要:项目主页:http://sourceforge.net/projects/synedit/
阅读全文
摘要:function UTCToLocalTime( UTCTime : TDateTime; iTimeZoneBias:integer ): TDateTime;var LocalSTime, UTCSTime : TSystemTime; TZInfo : TTimeZoneInformation; PTZInfo : PTimeZoneInformation; CalcResult : LongBool; LastError : LongInt;begin GetTimeZoneInformation( TzInfo ); Tzinfo.bias := Tzinfo.bias + iTim
阅读全文
摘要:Delphi/Pascal view sourceprint?1 function TimeZoneBias: Integer;var TZI: Windows.TTimeZoneInformation; // info about time zonebegin if Windows.GetTimeZoneInformation(TZI) = Windows.TIME_ZONE_ID_INVALID then SysUtils.RaiseLastOSError; Result := TZI.Biasend;
阅读全文
摘要:eg. var tm : string; dt : tdatetime;tm := '2009-08-21T09:11:21Z'; dt := ?procedure setISOtoDateTime(strDT:string);var // Delphi settings save vars ShortDF,ShortTF:string; TS, DS :char; // conversion vars dd, tt, ddtt:TDateTime;begin // example datetime test string in ISO format strDT :='
阅读全文
摘要:最近用EmbeddedWB控件做浏览器相关应用的时候,发现有些网页只要一打开就一定会蹦出一个“Invalid floating point operation”异常(关掉异常对话框以后,浏览器无响应),而程序仅仅是一句 WebBrowser1.Navigate(Edit1.Text); 貌似很多含有Silverlight元素的网页打开时都会带出这个bug。大概的情况是,在使用一些浮点操作时,微软默认设计会抛出一系列的异常。这些异常按理说不应该阻止程序运行。但不知道为什么,Delphi默认是截获后又把异常抛了出来,被系统截获就会影响程序运行了。Borland给的解决方法是,加一句Set8087C
阅读全文
摘要:本文汇总了RemObjects SDK提供的通道:最通用的通道1) HTTP 通道:使用www超文本传输协议的灵活,网络无关的通信. 2) Super TCP 通道: 在客户端服务端灵活通用的双向传输. 3) Super HTTP 通道- new in 'Vinci'常用的通道Frequently used channels 4) 以前的TCP通道: 通过TCP实现轻量级通信. 5) Email 通道(Delphi): 与存在的Email组织异步通讯. 6) Local 通道:直接应用程序内部通信. 7) DLL 通道(Delphi): 在DLL中执行服务端逻辑,并通过标准的R
阅读全文
摘要:{$IF CompilerVersion = 1.0} // Turbo Pascal 1{$IF CompilerVersion = 2.0} // Turbo Pascal 2{$IF CompilerVersion = 3.0} // Turbo Pascal 3{$IF CompilerVersion = 4.0} // Turbo Pascal 4{$IF CompilerVersion = 5.0} // Turbo Pascal 5{$IF CompilerVersion = 6.0} // Turbo Pascal 6{$IF CompilerVersion = 7.0} //
阅读全文
摘要:只支持到XE,不支持XE2,与之前的版本兼容性较好下载:http://www.ctdisk.com/file/7500697
阅读全文
摘要:下载:http://www.ctdisk.com/file/7305679
阅读全文
摘要:一、IDE控制1、关闭RTTI反射机制 自从Delphi2010中引入了新的RTTI反射机制后,编译出来的程序会变得很大,这是因为默认情况下 Delphi2010 给所有类都加上了反射机制。而我们的工程并不每每都需要使用到这个功能,所以对于不需要使用的地方,我们可以简单的用下面的方法禁用RTTI反射,从而大大减小文件体积。 禁用的方法很简单,就是要在工程(dpr文件中。Delphi2010下项目文件是dproj文件,但dpr文件仍然是默认的编写代码的项目文件)的Uses语句前添加下面的定义就可以了:{ 关闭RTTI反射机制减少EXE文件尺寸 } {$IF CompilerVersion >
阅读全文
摘要:这里指的文本是用于Windows系统中的扩展名为.txt的文件。Notepad(记事本)只支持四种格式:ANSI/Unicode/Unicode big endian/UFT-8,在Delphi中如何判断与读取这些不同格式的文本呢?首先,不同编码的文本,是根据文本的前两个字节来定义其编码格式的。定义如下:ANSI: 无格式定义;Unicode: 前两个字节为FFFE;Unicode big endian: 前两字节为FEFF; UTF-8: 前两字节为EFBB; 知道了各种编码格式的区别,写代码就容易了,以下是我在一个软件中写的处理代码:(注意,Delphi的TMemo/TRichEdit只支
阅读全文
摘要:{ 超简单实用的DELPHI日志单元 1.0.1 2011-7-10 p5soft.com 引用本单元即可使用 一共四个方法procedure log4error(msg: AnsiString); //写ERROR级别的日志procedure log4info(msg: AnsiString); //写INFO级别的日志procedure log4debug(msg: AnsiString); //写DEBUG级别的日志function log4filename():AnsiString; //得到当前日志文件全名 一个配置文件 log4me.ini#配置文件和主程序在同一目录.没有...
阅读全文
摘要:安装MongoDB:下载:mongodb-win32-x86_64-2008plus-2.0.4(64位版)编译MongoDB C 驱动:下载:monogo-c-driver(内含VS2010编译好的32位mongoc.dll,bson.dll)不想自己编译的朋友可以省去下面编译步骤,直接使用上面编译好的驱动下载:scons-2.1.0 (只兼容32位的Python)下载:Python 2.7.2(只能用32位的Python)使用Scons编译驱动(需要安装Visual Studio 2010),生成mongoc.dll,bson.dll安装Delphi 组件:下载:mongo-delphi-
阅读全文
摘要:Delphi 后续 Unicode版本中,一些单元里碰到UTF8编码字符,如果我们可能没有安装西欧的一些字符集,单元有可能显示错误,用delphi右键菜单 File Format->UTF8也未必能修复好。如图:正是因为 Delphi 单元不认识UTF8字符集,导致单引号被吃掉,编译异常!这个时候,千万不要随便修改或保存该单元文件。将该单元拖到 NodePad++里,在 NodePad++ 菜单->格式->以UTF8显示,即可看到这样的效果,UTF8字符编码马上原形毕露(如图:xC0,xFF, 记住这是十六进制,是零而不是大写字母的O):以 #$ 打头,修正如下:如果是cha
阅读全文
摘要:从官方下载到uniSynedit的压缩包后,只有for2009的版本,用2010打开,也是没有问题的。编译的时候,在SynEditHighlighter.pas报错:function TSynCustomHighlighter.IsWordBreakChar(AChar: WideChar): Boolean;begin case AChar of #0..#32, '.', ',', ';', ':', '"', '''', '?, '`',
阅读全文
摘要:使窗口支持Windows Shell的文件拖放功能简单的方式是使用Windows API: DragAcceptFiles,然后使用Delphi的VCL消息函数重载机制处理WM_DROPFILES消息,调用DragQueryFile即可.DragAcceptFiles Function--------------------------------------------------------------------------------Registers whether a window accepts dropped files.SyntaxVOID DragAcceptFiles..
阅读全文
摘要:一、SendInput SendInput可以将指定的鼠标键盘消息插入到系统消息队列,从而实现对鼠标键盘的模拟。有很多程序对SendInput进行了屏蔽,但不是所有的。所以这里介绍一下SendInput的使用。我已经将主要的模拟功能写在了一个单元文件中:SIMouseKeyboard.pas,调用该单元文件中的相关函数就可以实现鼠标键盘的模拟。该单元文件的下载见本楼末尾。SendInput的参数其实很简单,在Windows.pas就有函数的声明如下:function SendInput(cInputs: UINT; var pInputs: TInput; cbSize: Integer):.
阅读全文
摘要:How many times have you wanted to execute some program from your Delphi application?Let's say we have a database application that uses some external backup utility. The back up utility takes parameters from your application, archives data, while your program waits until backup finishes.On the ot
阅读全文
摘要:一、获取CPU厂家信息Const CPUVendorIDs :array[0..5] of string = ('GenuineIntel','UMC UMC UMC','AuthenticAMD','CyrixInstead','NexGenDriven','CentaurHauls'); //将CPU厂家信息转换成字串形式 CPUVendors :array[0..5] of string = ('Intel','UMC','AMD','C
阅读全文
浙公网安备 33010602011771号