要 KEY的 去官网注册一下就可以了. https://downloads.embarcadero.com/free/delphi Thank YouYour download of Embarcadero RAD Studio XE4 Architect - 30 day trial should start in a few seconds, and an email with important information has been sent to Warrially@**.**.If your download does not start automatically, please click here .Your trial period is 30 days from the time you install the product (some variations occur, please check email).Please ensure you spam filter will allow messages from [email protected] .
在我看来XE4可能开启了死亡之旅。至少对于我可能是这样的。 仔细查看XE3中VCL的代码,会发现有{$IFNDEF NEXTGEN} 这样的定义。 就名字来 NEXTGEN 来看,即 next generation的意思。也就一下代编译器 代表着Delphi的未来。因此我很好奇到底是什么样子的未来。于是我找到了 Marco Cantù, Delphi Product Manager写的《The Delphi Language for Mobile Development》 其中有一句“here we are referring to code you want to migrate to the mobile platform of course, as the Delphi Windows compilers are not going to change any time soon” 证明了我的观点,以后Delphi就是朝这个next generation发展了。于是,我需要具体了解到底是什么内容。 基于我现在的了解有以下内容: 1.String将只会有一种UTF16(双字节字符串),不再有AnsiString UnicodeSting 更不会有String[255]. 2.String以后不能修改 比如 var s: String; s[1] := 'a';这个会报错。 [dcc32 Warning]: W1068 Modifying strings in place may not be supported in the future” 3.以后的String,第一个字符将不再是从下标1,而是下标0 4.类将使用ARC机制。简单来说,class将是类似于Interface的方式,通过引用计数来进行生命周期的 管理。 比如以后的代码可能是:class procedure TMySimpleClass.CreateOnly; var MyObj: TMySimpleClass; begin MyObj := TMySimpleClass.Create; MyObj.DoSomething; //注意,这里不需要 MyObj.Free; end;5.为了防止不必要的循环增加引用,你需要[Weak]来表注不增加引用计算的成员。例如
type TMyComplexClass = class;
TMySimpleClass = class private [Weak] FOwnedBy: TMyComplexClass; public constructor Create(); destructor Destroy (); override; procedure DoSomething(bRaise: Boolean = False); end; TMyComplexClass = class 6.一些函数会构造对象并返回对象,其对象的引用计数可能是0,为了防止编译器释放了这个 对象,你需要使用[Unsafe] 例如:var [Unsafe] Obj1: TObject; [Result: Unsafe] function GetObject: TObject; 7.以后的某一天,with 将被废弃掉 8.以后的某一天,应该会去掉指针,因为指针的使用对于ARC这个玩意显然是个挑战。 9.删除掉assembly code,因为这对于可移植性是个大问题好吧。我能说什么呢?也许是时候放下了。
看来意思是如果要写一支程式能大小通吃、横跨桌面编译器与行动编译器,某些语法需要调整,如7种旧的string类型. 以下为官方说明文件 Two New Delphi Mobile Compilers for iOSThe iOS target platform is supported only in Delphi mobile applications, which use one of the two new Delphi mobile compilers available in XE4: DCCIOS32.EXE, the Delphi Cross Compiler for the iOS Simulator DCCIOSARM.EXE, the Delphi Cross Compiler for the iOS Device Differences between Delphi Desktop Compilers and Delphi Mobile CompilersThe two Delphi mobile compilers (DCCIOSARM and DCCIOS32) are quite different from the Delphi desktop compilers (DCC32, DCC64, DCCOSX). The mobile compilers can be considered a "Next Generation" of the Delphi language, and the mobile platform is a new step in the continuing evolution of the Delphi language. Keep in mind, however, that the language differences typically are not related to platform differences.To summarize: No inline assembly is supported on iOS, but four atomic intrinsic functions are supported by the Delphi mobile compiilers COM is not supported (7种旧的string 将不支援) Seven of the older string types are not supported: AnsiString WideString AnsiChar and PAnsiChar PWideChar OpenString ShortString Strings are: Immutable (constant), so you cannot index into a string as an array and manipulate the characters in a string If you attempt to modify a string, the Delphi mobile compilers might emit the message W1068 Modifying strings in place may not be supported in the future (Delphi). You can specify whether the message x1068 is emitted as a warning or an error. In the Hints and Warnings page, set the warning "Modifying strings in-place...." to "true" or "error". 0-based instead of 1-based (requiring possible changes to string handling routines) You can use the new Delphi compiler directive {$ZEROBASEDSTRINGS} to change the string indexing scheme locally. However, the RTL for the Delphi mobile compilers uses 0-based strings, so you must use 0-based strings when you are using the RTL in a Delphi mobile app. For example, {$ZEROBASEDSTRINGS} is useful if you have an isolated instance of in-place string editing that you cannot migrate to 0-based indexing at the moment. It is not safe to use {$ZEROBASEDSTRINGS} for code larger than a snippet; do not use {$ZEROBASEDSTRINGS} for an entire module or application. For all string handling, we recommend using TStringHelper functions. See Migrating Delphi Code to iOS from Desktop for examples. For editing a string in place, we recommend using TStringBuilder. Automatic Reference Counting is on by default for classes as well as interfaces, strings and dynamic arrays. Note: The With statement might not be supported in the future by the mobile compilers or new compilers. We recommend that you refactor or rewrite any With statements in your code base, and eliminate With statements where possible.For more information about writing code for the Delphi mobile compilers, see Migrating Delphi Code to iOS from Desktop.
https://downloads.embarcadero.com/free/delphi
Thank YouYour download of Embarcadero RAD Studio XE4 Architect - 30 day trial should start in a few seconds, and an email with important information has been sent to Warrially@**.**.If your download does not start automatically, please click here .Your trial period is 30 days from the time you install the product (some variations occur, please check email).Please ensure you spam filter will allow messages from [email protected] .
Key是从2ccc上一个贴子找到的
今天是没空了,明后天抽空再安装吧
为了构建和测试iOS应用程序,你需要以下条件:
在Mac连接到同一网络的RAD Studio
在Mac上安装的Xcode
在Mac上安装Xcode的命令行工具
在您的Mac上安装和运行平台助理
为了测试你的iOS设备上的iOS应用程序的话,还需要以下条件:
一个苹果开发者帐号(免费)和iOS开发者的帐户通过苹果($ 99)
安装后的开发者证书
有准备的iOS设备通过USB电缆连接到您的Mac
等xe5传说中的andrioid支持出来再玩玩
仔细查看XE3中VCL的代码,会发现有{$IFNDEF NEXTGEN} 这样的定义。
就名字来 NEXTGEN 来看,即 next generation的意思。也就一下代编译器
代表着Delphi的未来。因此我很好奇到底是什么样子的未来。于是我找到了
Marco Cantù, Delphi Product Manager写的《The Delphi Language for Mobile Development》
其中有一句“here we are referring to code you want to migrate to the mobile platform of course, as the Delphi Windows compilers are not going to change any time soon”
证明了我的观点,以后Delphi就是朝这个next generation发展了。于是,我需要具体了解到底是什么内容。
基于我现在的了解有以下内容:
1.String将只会有一种UTF16(双字节字符串),不再有AnsiString UnicodeSting
更不会有String[255].
2.String以后不能修改 比如 var s: String; s[1] := 'a';这个会报错。
[dcc32 Warning]: W1068 Modifying strings in place may not be supported in the future”
3.以后的String,第一个字符将不再是从下标1,而是下标0
4.类将使用ARC机制。简单来说,class将是类似于Interface的方式,通过引用计数来进行生命周期的
管理。
比如以后的代码可能是:class procedure TMySimpleClass.CreateOnly;
var
MyObj: TMySimpleClass;
begin
MyObj := TMySimpleClass.Create;
MyObj.DoSomething;
//注意,这里不需要 MyObj.Free;
end;5.为了防止不必要的循环增加引用,你需要[Weak]来表注不增加引用计算的成员。例如
type
TMyComplexClass = class;
TMySimpleClass = class
private
[Weak] FOwnedBy: TMyComplexClass;
public
constructor Create();
destructor Destroy (); override;
procedure DoSomething(bRaise: Boolean = False);
end; TMyComplexClass = class
6.一些函数会构造对象并返回对象,其对象的引用计数可能是0,为了防止编译器释放了这个
对象,你需要使用[Unsafe]
例如:var
[Unsafe] Obj1: TObject;
[Result: Unsafe]
function GetObject: TObject;
7.以后的某一天,with 将被废弃掉
8.以后的某一天,应该会去掉指针,因为指针的使用对于ARC这个玩意显然是个挑战。
9.删除掉assembly code,因为这对于可移植性是个大问题好吧。我能说什么呢?也许是时候放下了。
翔哥以前给我装过mac,跟真机没什么差别
虚拟机化是一个趋势。
delphi已经远远落后于其他开发工具了。
新特性的引用代价也很大,就是会有很多看不见的bug.
使用新版本的Delphi风险上升了。
以下为官方说明文件 Two New Delphi Mobile Compilers for iOSThe iOS target platform is supported only in Delphi mobile applications, which use one of the two new Delphi mobile compilers available in XE4: DCCIOS32.EXE, the Delphi Cross Compiler for the iOS Simulator
DCCIOSARM.EXE, the Delphi Cross Compiler for the iOS Device Differences between Delphi Desktop Compilers and Delphi Mobile CompilersThe two Delphi mobile compilers (DCCIOSARM and DCCIOS32) are quite different from the Delphi desktop compilers (DCC32, DCC64, DCCOSX). The mobile compilers can be considered a "Next Generation" of the Delphi language, and the mobile platform is a new step in the continuing evolution of the Delphi language. Keep in mind, however, that the language differences typically are not related to platform differences.To summarize: No inline assembly is supported on iOS, but four atomic intrinsic functions are supported by the Delphi mobile compiilers
COM is not supported (7种旧的string 将不支援)
Seven of the older string types are not supported:
AnsiString
WideString
AnsiChar and PAnsiChar
PWideChar
OpenString
ShortString
Strings are:
Immutable (constant), so you cannot index into a string as an array and manipulate the characters in a string If you attempt to modify a string, the Delphi mobile compilers might emit the message W1068 Modifying strings in place may not be supported in the future (Delphi).
You can specify whether the message x1068 is emitted as a warning or an error. In the Hints and Warnings page, set the warning "Modifying strings in-place...." to "true" or "error". 0-based instead of 1-based (requiring possible changes to string handling routines) You can use the new Delphi compiler directive {$ZEROBASEDSTRINGS} to change the string indexing scheme locally. However, the RTL for the Delphi mobile compilers uses 0-based strings, so you must use 0-based strings when you are using the RTL in a Delphi mobile app. For example, {$ZEROBASEDSTRINGS} is useful if you have an isolated instance of in-place string editing that you cannot migrate to 0-based indexing at the moment. It is not safe to use {$ZEROBASEDSTRINGS} for code larger than a snippet; do not use {$ZEROBASEDSTRINGS} for an entire module or application. For all string handling, we recommend using TStringHelper functions. See Migrating Delphi Code to iOS from Desktop for examples.
For editing a string in place, we recommend using TStringBuilder.
Automatic Reference Counting is on by default for classes as well as interfaces, strings and dynamic arrays. Note: The With statement might not be supported in the future by the mobile compilers or new compilers. We recommend that you refactor or rewrite any With statements in your code base, and eliminate With statements where possible.For more information about writing code for the Delphi mobile compilers, see Migrating Delphi Code to iOS from Desktop.