-
近期文章
近期评论
文章归档
分类
功能
作者归档:raysoftware
Delphi和Android Studio混合开发(二)FMX项目和Android混合开发
Delphi开发Android程序非常快,拖拖拉拉几下子就可以开发出一个Android程序,而且还可以随意输出成Windows,Mac,Linux,iOS上面。
但是因为Delphi和Android Studio开发的的Android APP还是有点区别的,和C++开发Android APP类[……]
Delphi和Android Studio混合开发(一)Delphi开发标准.SO给Android Studio用
Delphi自从开始跨平台,支持Windows,Linux,Mac,iOS,Android以后,玩法就多了很多。
实际上Delphi在开发任何平台的代码的时候都是编译成原生的Native Code,在Android平台,Delphi的代码和C++一样是被编译为SO(Linux,Unix上的动态[……]
Delphi12的一个数据库问题
我身边的朋友都是第一时间更新Delphi的版本。
他把服务端程序由Delphi11更新到最新的Delphi12,发现DBExpress的用FieldByName().asBytes读取Blob型数据有问题,读的不正确。
FieldByName().asString读到的字符串也不正确。
[……]
给Delphi高版本添加类似Kotlin的for的功能
前几天在盒子的帖子上讨论Delphi11的特性,一个朋友说希望有for in 0..100这种类似kotlin的循环语法。
随便指出了可以变相实现for in [0..100]即可,结果有其他朋友验证了,这种写法在DelphiXE1之前的版本是可以的,在高版本Delphi上实际上被认为是集合,[……]
Managed Record的使用一则
其实Managed Record有很多方便使用的场景。
比如下面的就是把TStringBuilder由Class改成了Managed Record。好处就是不再需要释放了。[……]
Delphi Managed Record的一个不方便的地方
使用的时候还要
var a : TMyRecord := TMyRecord.create(1);
实际上既有constructor,又有Initialize,是有歧义的,完全可以合并。
变成如下这种方式:
class operator Initialize(out Dest: TMyRecord,[……]
Delphi10.4托管记录(Managed Record)产生的机器代码分析
只分析了Delphi Windows平台X86,X64上的代码,ARM平台和Linux平台基于是LLVM编译器的,没有分析。
Delphi 10.4
VC2015
VC的代码之所以加了GetTickCount,Sleep是因为VC的编译器极其智能,Release版本的时候如果函数为空会[……]
Delphi 10.4 的期待和不足
Delphi10.4发布在即,看了许多特性宣传,最值得期待的就是托管记录。
最开始Delphi的结构体支持操作符重载,就很兴奋,想自己封装算法库,自己封装智能指针。
比如自己实现string,自己实现BigInt之类的。结果发现record虽然支持了操作符重载,但是不能自动初始化和反初始化。导致一些[……]
CPP各个操作系统和平台的宏定义
#if TARGET_OS_MAC
#if TARGET_OS_IPHONE
#if TARGET_IPHONE_SIMULATOR
#if TARGET_OS_EMBEDDED
#ifdef __ANDROID__
#if defined(__M[……]