delphi
文章平均质量分 81
Hmillet
这个作者很懒,什么都没留下…
展开
-
如何在Delphi中实现精确到微秒级的时钟
{A high-precision counter/timer. Retrieves time differences downto microsec. Quick Reference: THPCounter inherits from TComponent. Key-Methods: ...转载 2018-04-22 15:30:07 · 2269 阅读 · 0 评论 -
delphi把Clientdataset的Delta保存到数据库
版权声明:本文为博主原创文章,未经博主允许不得转载。[delphi] view plain copy //ATableName-表名, AKeyField-主键,多个主键用;隔开,如 ;pid;times; from:unit HlsImplBase; [delphi] view plain copy function T转载 2017-09-18 20:40:41 · 3120 阅读 · 0 评论 -
Delphi中ClientDataSet浅析
与一般的数据集组件不同,TClientDataSet使用的技术比较特别,本着高速度、低存储需求的原则TClientDataSet的内部使用了两个数据存储源。第一个是其Data属性,这是当前内存数据的视图,反映了所有的数据改变。如果用户从数据中删除一条记录,则此记录将从Data中消失,相应地,加入一条新记录后,此记录便存在Data属性中了。另一个数据源是Delta属性,故名思义,即增量的意思,这个属转载 2017-09-18 20:39:41 · 1271 阅读 · 0 评论 -
学会使用SafeArray 之 Delphi 篇
在学习的时候曾经百度了一下,想查找关于delphi中SafeArray的用法,没想到资料竟然如此之少,甚至连一篇相对完整的都没有。也许正如田师傅所说,现在高手们都在实行“技术封锁”了? 在CSDN技术中心有一篇关于C++的使用,说的比较详细。鉴于手中有田师傅写的代码,特拿来一部分对照自己学习的,翻译为Delphi版本。留作笔记,日后翻阅。=====================转载 2017-09-18 20:38:31 · 2369 阅读 · 0 评论 -
Sending a URL to Another App on Android and iOS with Delphi XE5
Here is the source code for my Open and View URL library from my CodeRage 8 session “Beyond the App”. Here is a download of the example app. I’ll see about posting it to a SVN repository too so it转载 2017-09-26 17:11:26 · 835 阅读 · 0 评论 -
delphi、c#数据类型比较
delphi 整数类型的表述同一行的,表示的是相同范围的数。shortint ---- int8 -128..127 smallint ---- int16 SHORT -32768..32767integer Longint ----- int32 LONGint64 -----LONGLONG Largeint LONG64Nativ转载 2017-08-18 15:34:39 · 2279 阅读 · 0 评论 -
delphi Format格式化函数
delphi Format格式化函数Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用:首先看它的声明:function Format(const Format: string; const Args: array of const): string; overload;事实上Format方法有两个转载 2017-08-18 10:32:45 · 832 阅读 · 0 评论 -
高低字节序转换(htonl、ntohl、htons、ntohs函数)
高低字节序转换(htonl、ntohl、htons、ntohs函数)Part 1: htons函数具体解释 在Linux和Windows网络编程时需要用到htons和htonl函数,用来将主机字节顺序转换为网络字节顺序。 在Intel机器下,执行以下程序int main()...{ printf("%d /n",htons(16));转载 2017-06-27 20:00:15 · 4699 阅读 · 0 评论 -
delphi 修改代码补全的快捷键(由Ctrl+Space 改为 Ctrl + alt + Space)
delphi 修改代码补全的快捷键(由Ctrl+Space 改为 Ctrl + alt + Space)delphi 的IDE快捷键与输入法切换键中突,以往的解决方法是下载一个ImeTool修改 windows 系统的快捷键在 xp win7 都好使,但在win 10经常是修改完后,重启又失效了。本方法采用 Open Tools API 编写是一个组件。安装方法:菜单-->转载 2017-06-15 08:39:32 · 1698 阅读 · 0 评论 -
在Delphi中创建线程,请一定使用BeginThread()代替CreateThread()创建线程!
在Delphi中创建线程,请一定使用BeginThread()代替CreateThread()创建线程! 如果直接使用Win32的API函数CreateThread()创建多个线程,也是可以创建的。但是,你应该明白,在每个线程中动态分配和销毁内存块,是需要同步保护的。Delphi语言中有一个在使用多线程环境下至关重要的全局变量IsMultiThread,系统在进行内存分配的时候,根据IsMu转载 2017-06-13 14:26:59 · 757 阅读 · 0 评论 -
Delphi之virtual,dynamic,abstract
对象的方法能定义成静态(static)、虚拟(virtual)、动态(dynamic)或消息处理(message)。请看下面 的例子: TFoo = class procedure IAmAStatic; procedure IAmAVirtual; virtual; procedure IAmADynamic; dynamic; procedure IAmAMessage转载 2017-06-22 14:10:40 · 1045 阅读 · 0 评论 -
Delphi常用系统函数总结
字符串处理函数Unit System函数原型 function Concat(s1 [, s2,..., sn]: string): string; 说明 与 S := S1 + S2 + S3 ...; 相同. 将字符串相加.函数原型 function Copy(S: string; Index, Count: Integer): string;说明 S : 字符串. Indexd转载 2017-06-22 09:07:42 · 777 阅读 · 0 评论 -
Delphi预编译指令总结
Delphi预编译指令总结Delphi作为一个优秀的开发工具,这不仅是由于它开创了"构件(Component)"时代,影响深远;另一个原因是它拥有非常出色的编译器,Borland(Inprise)公司宣称Delphi具有世界上最快的编译器,如果你使用过Visual C++和Delphi你会明显体会到这一点。Delphi快速高效的编译器主要来自Object Pascal的严谨,使用Delph转载 2017-06-22 09:06:33 · 820 阅读 · 0 评论 -
DebugHook 与 ReportMemoryLeaksOnShutdown
DebugHook 与 ReportMemoryLeaksOnShutdown 都是 System 下的变量.DebugHook: 程序中母体中运行时, 此值是 1; 独立运行时, 它是 0.在程序的任何地方加上一句 ReportMemoryLeaksOnShutdown := True; 这样程序在关闭时可检测是否有内存泄漏.如果这样使用: ReportM转载 2017-06-22 08:40:01 · 1055 阅读 · 0 评论 -
Delphi Dll中多线程无法使用Synchronize同步的解决方法(转)
具体原因可以参考这篇文章“DLL/ActiveForm中的线程同步处理”www.delphibbs.com/keylife/iblog_show.asp。事实上,经试验可以在dll工程文件中加入以下语句 :Application.Initialize;if Application.Handle = 0 thenbegin Application.CreateHandl转载 2017-06-28 20:51:54 · 1490 阅读 · 0 评论 -
[Delphi] Delphi版本号对照
VER300 Delphi Seattle / C++Builder Seattle 23 230 (Delphi:Win32/Win64/OSX/iOS32/iOS64/Android) (C++Builder:Win32/Win64/OSX/iOS32/iOS64/Android) VER290 Delphi XE8 / C++Bui转载 2017-05-22 16:59:52 · 2033 阅读 · 0 评论 -
[Delphi] 设置线程区域语言防止乱码
uses Windows;在工程文件中添加一句代码,如下: Application.Initialize; //添加以下一句解决外文系统乱码问题 SetThreadLocale(DWORD(Word(SORT_DEFAULT) shl 16) or DWORD(Word(SUBLANG_CHINESE_SIMPLIFIED) shl转载 2017-05-22 16:58:41 · 849 阅读 · 0 评论 -
Socket的错误码和描述(中英文翻译)
Socket的错误码和描述(中英文翻译)//下面是Socket Error的错误码和描述:Socket error 0 - Directly send error Socket error 10004 - Interrupted function //call 操作被终止 Socket error 10013 - Permission denied //c访问被拒绝 S转载 2017-04-27 08:45:24 · 976 阅读 · 0 评论 -
Delphi 自带了 Base64 编解码的单元
Delphi 自带了 Base64 编解码的单元,叫 EncdDecd,这名字很拗口而且不直观,估计这是一直很少人关注和知道的原因。这个单元提供两套四个公开函数:对流的编解码:procedure EncodeStream(Input, Output: TStream); // 编码procedure DecodeStream(Input, Output: TStream); // 解码转载 2017-09-20 09:13:23 · 1490 阅读 · 0 评论 -
TMemoryStream、String与OleVariant互转
TMemoryStream、String与OleVariant互转//////////////////////////////////////////////////////////////////////////////////功能: STRING 的内容流化到 OLEVARIANT 中//参数:////////////////////////////////////////转载 2017-09-20 09:15:03 · 738 阅读 · 0 评论 -
使用 Delphi Xe 的 TDictionary
原本一直使用 TList, 将定义的一个个 Record 保存在TList 里面, 为了能把某些对象管理起来, 例如一个类的 n 多实例,可以进行索引、查找、释放等今天刚看到原来已经有了一个叫 TDictionary 对象,用起来挺方便。 挺像我们在DB中定义的 Dictionary 表,Key、Value。 而那个不管Key、Value 都挺发达,允许各种定义的类。 ok,下面官方De转载 2018-01-30 22:04:07 · 3520 阅读 · 0 评论 -
delphi 弹出ado连接配置相关函数
function PromptDataSource(ParentHandle: THandle; InitialString: WideString): WideString;procedure CreateUDLFile(const FileName, ProviderName, DataSourceName: WideString);function DataLinkDir: st转载 2018-01-30 21:57:55 · 678 阅读 · 0 评论 -
delphi 各种时间类型之间的转换函数
各种时间类型之间的转换函数DateTimeToFileDate函数:定义:DateTimeToFileDate(DateTime: TDateTime): Integer;作用: 将一个TDateTime类型的时间转化为Dos环境中的时间,Dos环境下对时间的访问方法和VCL中的TdateTime类型不一样,在进行文件操作时,为了保持时间的一致性,需要使用DateTimeToFileD转载 2017-12-01 20:33:47 · 8353 阅读 · 0 评论 -
分布式系统唯一ID生成方案汇总
分布式系统唯一ID生成方案汇总系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。下面就介绍一些常见的ID生成策略。1. 数据库自增长序列或字段最常见的方式。利用数据库,全数据库唯一。优点:1)简单,代码方便,性能可以接受。2)数字ID天转载 2017-11-30 09:27:33 · 750 阅读 · 0 评论 -
Delphi XE中String、ANSIString、TBytes之间的转换 一、string转为ansistring 1、直接赋值 (有警告) 2、ansistring()类型强制转换。(无警
Delphi XE中String、ANSIString、TBytes之间的转换一、string转为ansistring1、直接赋值 (有警告)2、ansistring()类型强制转换。(无警告)二、ansistring 转为string1、直接赋值 (有警告)2、string()类型强制转换。(无警告)三、string 转为Tbytes1、bytes:= byt转载 2017-11-30 09:25:31 · 1842 阅读 · 0 评论 -
delphi禁止webbrowser弹出窗口或者脚本错误
delphi禁止webbrowser弹出窗口或者脚本错误webbrowser1.silent:=true; //屏蔽脚本错误procedure TForm1.WebBrowser1NewWindow2(Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool); begin Cancel:=True; //禁止转载 2017-11-20 21:40:18 · 1101 阅读 · 0 评论 -
【转】解决Delphi WebBrowser 无法调用当前浏览器的版本 复制代码
procedure TregedtIE.FormCreate(Sender: TObject); begin WriteAppNameToReg; WebBrowser1.Navigate('C:\a.html'); end; {--} {需要注意是GetNativeSystemInfo 函数从Windows XP 开始才有, 而 IsWow64Process转载 2017-11-20 21:02:41 · 1674 阅读 · 0 评论 -
利用XE7的OmniXML完成XML文件的处理,支持跨平台
OmniXML是XE7提供的新DOM,传说比ADOM还要快,实际操作确实如此,这次我们来做几个文件操作,首先在控件页上加上TXMLDocument控件,然后给控件命名为XMLDoc,修改DOMVendor属性为OmniXML即可完成,操作与原来一样,另外还有MSXML和ADOM,MSXML只能在windows里面用,不能跨平台,就是说你的程序在Android或者iOS下可能出问转载 2017-11-13 08:37:04 · 939 阅读 · 0 评论 -
delphi中GetEnumName和GetEnumValue
利用TypInfo单元的GetEnumName和GetEnumValue可以遍历任意枚举类型,并获取其名称和值。下面是示例Demo。 procedure TForm1.btnTestClick(Sender: TObject);var p: PTypeData; i: Integer; s: String; pt: PTypeInfo;begin List转载 2017-10-25 09:03:25 · 675 阅读 · 0 评论 -
Delphi通过管道执行外部命令行程序(cmd)并获取返回结果
//================================================================//K8执行DOS并返回结果function RunDosCommand(Command: string): string;var转载 2017-10-15 14:45:37 · 3592 阅读 · 0 评论 -
TMemoryStream、String与OleVariant互转
TMemoryStream、String与OleVariant互转//////////////////////////////////////////////////////////////////////////////////功能: STRING 的内容流化到 OLEVARIANT 中//参数:////////////////////////////////////////转载 2017-09-29 19:50:04 · 510 阅读 · 0 评论 -
JSON 之 SuperObject(14): 从 XML 中解析
JSON 之 SuperObject(14): 从 XML 中解析SuperObject 文件包中还有一个 SuperXmlParser 单元, 可以从 XML 中解析出 ISuperObject.SuperXmlParser 只有三个函数: XMLParseString、XMLParseStream、XMLParseFile, 分别从字符串、流、文件中解析.遗憾的是对转载 2017-09-29 09:01:32 · 1024 阅读 · 0 评论 -
Delphi下16进制位图数据转位图
如果我们在Form中拖入一个Image控件,并设置好picture后,Alt+F12就可以看到Form的源代码中已经将图片转成了16进制字符串,如下:object Image1: TImage Left = 536 Top = 24 Width = 105 Height = 105 Picture.Data = { 075442697转载 2017-09-20 19:02:22 · 1437 阅读 · 0 评论 -
TClientDataSet[20]: 使用 Blob 字段
Blob(Binary Large Object) 字段包括:ftBlob, ftMemo, ftGraphic, ftFmtMemo, ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString,ftLargeint, ftADT, ftArray, ftReferen转载 2017-09-20 17:20:46 · 851 阅读 · 0 评论 -
Delphi DataSet和JSON互转函数
一、DataSet转JSON[delphi] view plain copy print?//1)数据集转换为JSON字符串: //需USES System.JSON; function DataSetToJson(ADataset: TDataSet): string; // [{"CityId":"18","CityName":"西安"},{"Ci转载 2017-09-28 20:49:10 · 1538 阅读 · 0 评论 -
OleVariant 与 Variant
olevariant存在于windows和linux平台,这二种类型主要的不同是variant类型仅是当前的应用程序可以进行操作,而olevariant类型则是ole自动化服务器所以定义的统一的数据类型,意味着可以通过网络或其他程序进行操作,当然也不必担心其他客户端如何进行操作.当你给一个variant类型的变量赋自定义的值的时候(例如delphi string,或一个其他的新的自定义类型转载 2017-09-20 13:55:48 · 2530 阅读 · 0 评论 -
delphi 流Stream 和 Variant 的转换函数
作者: 陆岛工作室Variant 转换成 Stream 的函数procedure VariantToStream (const v :olevariant; Stream : TMemoryStream); var p : pointer; begin Stream.Position := 0; Stream.Size := VarArrayHighBo转载 2017-09-20 13:53:48 · 1302 阅读 · 0 评论 -
delphi数据类型转换
//Char 类型与其编码值的转换:varb: Byte;c: Char;beginb := Ord('A'); {返回: 65}b := Ord(#65); {返回: 65}b := Ord($41); {返回: 65}b := Ord(#$41); {返回: 65}b := Byte('A'); {返回: 65}b转载 2017-05-07 11:05:56 · 6654 阅读 · 0 评论 -
Delphi使用COM对象的时候是否需要CoInitialize
核心提示:MSDN上CoInitialize的解释:Initializes the COM library on the current apartment and identifies the concurr...MSDN上CoInitialize的解释:Initializes the COM library on the current apartment and identifies转载 2017-05-23 20:03:13 · 1425 阅读 · 0 评论 -
Delphi中ClientDataSet浅析
与一般的数据集组件不同,TClientDataSet使用的技术比较特别,本着高速度、低存储需求的原则TClientDataSet的内部使用了两个数据存储源。第一个是其Data属性,这是当前内存数据的视图,反映了所有的数据改变。如果用户从数据中删除一条记录,则此记录将从Data中消失,相应地,加入一条新记录后,此记录便存在Data属性中了。另一个数据源是Delta属性,故名思义,即增量的意思,这个属转载 2017-04-12 21:10:50 · 693 阅读 · 0 评论