
Delphi
文章平均质量分 95
FreedomExpect
持续学习
展开
-
Delphi的RTTI&VMT
网上已经有很多关于RTTI的博客,最近刚好看到这里,以前没弄懂的东西,这次一起搞明白一下,写个博客,算是做个笔记。这里有一篇英文文档,说的很详细:Delphi Q&A概念每个Delphi的类都有一张虚拟方法表(virtual-method table),或者说,Delphi的类是由它来定义的。从编译器角度来看,一个类就是指向VMT的指针。一个虚拟方法表从指针所指地址的负偏移76 ...原创 2019-03-15 17:51:57 · 1315 阅读 · 0 评论 -
Delphi使用PShortString指针
今天学习的时候,看到RTTI结构里用了蛮多PShortString指针,由于ShortString比较特殊,所以操作PShortString的简单demo巩固一下值得注意的是:1.平常项目中一般不会使用PShortString,一般直接使用PChar操作内存,也很少在一个结构体中添加变长的成员变量。//推荐做法,Desc记得要GetMem()/FreeMem()PMyRecord = ^T...原创 2019-03-15 21:15:35 · 844 阅读 · 6 评论 -
delphi Class helper for class语法
作用对现有的类进行扩展,如果把类理解为一个容器,那么这条语法的作用是对现有的类的容器的成员进行扩展或者修改。有点像lua中的类,可以取到类的table,对table修改。语法TMyClass = classpublic procedure print;endTMyClassHelper = class helper for TMyClassprivate procedure ...原创 2019-04-10 16:39:10 · 1859 阅读 · 0 评论 -
delphi strict final用途
整理一下delphi2007后一些不常用的语法关键字:strictprivate域下成员变量或方法加了此修饰符,该类的子类将无法访问private域下的变量和方法。 TAbstractClass = class abstract private FID: string; strict private //加了strict标记,继承类无法访问 FName: ...原创 2019-05-22 15:39:30 · 622 阅读 · 0 评论 -
Delphi datetime运算和filedate的转换
在服务器中经常会用到时间的计算,如记录当前时间,存储当前时间戳,计算两个时间的差值。TDateTimedatetime在内存中使用比较多,它是一个double类型,可以很精细的记录时间。..var tvNow: TDateTime;...var lvNow: TDateTime; h, m, s, ms: Word; dv: Double;begin tvNow ...原创 2019-06-12 07:57:07 · 1183 阅读 · 0 评论