Delphi XE新语法/新功能


本文整理自网络,侵删。

 
uses System.NetEncoding;

TNetEncoding.Base64.EncodeString(S);
TNetEncoding.Base64.DecodeString(S);
TNetEncoding.URL.EncodeString(S);
TNetEncoding.URL.DecodeString(S);
TNetEncoding.HTML.EncodeString(S);
TNetEncoding.HTML.DecodeString(S);

动态数组新语法,可以不用Setlength,赋值时候有点类似动态语言。

String-like operations on Dynamic Arrays
B := [1, 2, 3, 4];
B := B + [5, 6, 7];
Insert([6, 7, 8], B, 5); // inserts array [6, 7, 8], into B at index 5
Delete(B, 1, 3); // deletes 3 elements starting at index 1
Concat([1,2,3,4],[5,6,7])
var B: TBytes = [1, 2, 3, 4];
Improved initialization for Dynamic Arrays
B := [1, 2, 3, 4];
B := B + [5, 6, 7];

type
  TBytes = array of Byte;
  TBytesArray = array of TBytes;
  TStrDA = array of string;
 
resourcestring
  Sabc = 'abc';
  Sdef = 'def';
 
var
  B: TBytes = [1, 2, 3, 4];
  C: TBytesArray = [[1, 2, 3], [4,5,6]];
  D: TStrDA = ['ABC', 'DEF'];
  E: TStrDA = [ Sabc, Sdef ];


函数的返回,可以直接用exit(retuanvalue)来替代result:=retuanvalue;exit了.



匿名方法引用(reference to)
以前我们创建一个方法引用的时候会很麻烦,尤其是在类中,需要跳出去在别的地方写一段函数,然后再回来继续写。新的语法reference to避免了这种情况的发生,尤其是许多时候其实我们的方法实际上只有一两句的时候,它可以大大加快开发的速度,就像前面的Exit语法加强一样贴心。不过 遗憾的是,这个类lamda方法的语法糖还不够甜。
type  
   TFoo = reference to function(num: Integer): Integer; // reference to Method
var  
   func: TFoo;  
   n: Integer;  
begin  
   func := function(a: Integer): Integer // *NOTE*: Do NOT Write ‘;’
   begin  
     Result := a * a;  
   end;  
   n := func(10);

相关阅读 >>

Delphi 运行clsid文件

Delphi实现拖动无标题窗口的5种方法

Delphi 小票打印开钱箱 自动切纸指令

Delphi unigui 路径

Delphi 生成日志记录单元

Delphi xe6 firemonkey移动应用程序的twebbrowser html页面上运行javascript

Delphi获取优盘的id

Delphi fmx 切换窗体最大化

Delphi四舍五入问题解决

Delphi touchkeyboard1 基本用法

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...