分类目录归档:未分类

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

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

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

继续阅读

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

Android,保活,复活,防杀

从Android5到Android11都通用。
这是在我的Mate40Pro(Android10)上面的效果

[……]

继续阅读

发表在 Android, APP, Delphi, 未分类 | 标签为 , , , | 2条评论

跨平台的,在FMX中读取ICON文件的每一帧到Bitmap

昨天在使用FreeImage的时候发现FreeImage对ICON的处理有问题,32位的帧读出来的背景居然是黑的。我猜应该是32位没有And的Mask数据。而它按照24位以下的处理方式把Alpha值填成255了。

只能自己动手写代码,也不复杂,算上把Windows单元抽出来声明的结构体,也就300[……]

继续阅读

发表在 Delphi, 未分类 | 197条评论

关闭掉新版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条评论

Cocos2d-x程序Windows下VC中文乱码的解决

Cocos2d-x默认字符串常量编码都是UTF8的,而Windows中的VC默认都是跟系统相同,比如简体Windows是GB2312或者GBK.繁体就是BIG5编码.
而我们大多数中国人用VC编译出来的字符串常量也就是GBK编码的字符串.
在Cocos2d-x界面上绘制的时候它是不知道的,只会认为这[……]

继续阅读

发表在 cocos2d-x, CPP, 未分类 | Cocos2d-x程序Windows下VC中文乱码的解决已关闭评论

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

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

继续阅读

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

HTML解析器更新

增加了兼容性.
对于非标准的HTML做法,Tag中的符号没有转义做了兼容.
HtmlParser
或者
http://code.google.com/p/delphi-html-parser/[……]

继续阅读

发表在 Delphi, 未分类 | 188条评论

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

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

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

继续阅读

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

Delphi循环移位操作

如果在X86计算机上很简单,直接内嵌汇编ror和rol指令就是循环移位.
但是如果在Android的平台上,asm关键字是无效的.
只能自己实现.

function ror(const Value: DWORD; ShiftValue: Byte): DWORD; overload;
begin[……]

继续阅读

发表在 Delphi, 未分类 | 154条评论