标签归档:Delphi

给Delphi高版本添加类似Kotlin的for的功能

前几天在盒子的帖子上讨论Delphi11的特性,一个朋友说希望有for in 0..100这种类似kotlin的循环语法。

随便指出了可以变相实现for in [0..100]即可,结果有其他朋友验证了,这种写法在DelphiXE1之前的版本是可以的,在高版本Delphi上实际上被认为是集合,[……]

继续阅读

发表在 未分类 | 标签为 | 给Delphi高版本添加类似Kotlin的for的功能已关闭评论

Managed Record的使用一则

其实Managed Record有很多方便使用的场景。
比如下面的就是把TStringBuilder由Class改成了Managed Record。好处就是不再需要释放了。[……]

继续阅读

发表在 Delphi | 标签为 , , | Managed Record的使用一则已关闭评论

Delphi Managed Record的一个不方便的地方

使用的时候还要
var a : TMyRecord := TMyRecord.create(1);
实际上既有constructor,又有Initialize,是有歧义的,完全可以合并。
变成如下这种方式:
class operator Initialize(out Dest: TMyRecord,[……]

继续阅读

发表在 Delphi | 标签为 , | Delphi Managed Record的一个不方便的地方已关闭评论

关闭掉新版Delphi的几个固定导出函数(__dbk_fcall_wrapper,dbkFCallWrapperAddr,TMethodImplementationIntercept)

不知道从什么时候起Delphi编译的PE文件总是三个固定的导出函数。

一方面有强迫症的同学们会不爽,另一方面其实是不安全的。

这三个函数是:__dbk_fcall_wrapper,dbkFCallWrapperAddr,TMethodImplementationIntercept

有两种方式可[……]

继续阅读

发表在 Delphi, 未分类 | 标签为 , , , , | 59条评论

FireMonkey在使用GDIPlus放大图像的Bug的修复

Delphi10.2中FireMonkey中GDIPlus放大图片的Bug,不知道从哪个版本开始的,还是一直都这样。

新建一个FireMonkey工程,窗口上放一个Image控件,WrapMode设置为Stretch,表示随控件大小缩放。指定一张小图。

默认使用D2D的时候放大没问题

关闭[……]

继续阅读

发表在 Delphi, 未分类 | 标签为 , , , , | 46条评论

FireMonkey跨平台的GIF解决方案

用FireMonkey的同学们一定知道FireMonkey对GIF动画的支持不是太好,只有静态的。

网上已有的解决方案就是先手动预处理GIF文件分割成多个单张,然后放到BitmapList中,缺点是要手动处理,而且帧速率也麻烦。因为项目中要实现了一个GIF的格式处理,代码整理了一下,嫁接到Fire[……]

继续阅读

发表在 Delphi | 标签为 , , , , | 4条评论

Delphi结构体的扩展,可以自动初始化,反初始化,自定义拷贝函数.

恭贺Delphi XE7诞生,Delphi XE7在编译器内部集成了我之前所实现的动态数组扩展.http://www.raysoftware.cn/?p=278
现在有一个更悠久的历史需求,在QC的Delphi板块上置顶了好多年.官方一直没有实现.
http://qc.embarcadero.com[……]

继续阅读

发表在 Delphi, 未分类 | 标签为 , , , | 121条评论

Delphi读取Android设备联系人.DelphiXE6中编译通过

和某牛讨论Delphi读Android联系人.写了如下代码

我是个懒人,不想再深究了.
对了,别忘了Android有权限,加上读取联系人的权限[……]

继续阅读

发表在 Delphi, 未分类 | 标签为 , , , | 155条评论

Delphi XE5开发Android程序使用自定义字体文件.

最近在做一个电子书阅读器的Android小程序来验证Delphi XE5的移动开发功能.
万事大吉,只欠根据字体文件(.ttf文件)切换阅读字体,通常Android系统只带三种以下字体.一般用Java/Eclipse开发的话比较简单,typeface的createFromAsset,createFr[……]

继续阅读

发表在 Delphi, 未分类 | 标签为 , , , , | 171条评论