通过什么来替换在nextgen下弃用的TSysCharSet?

时间:2017-03-06 16:15:27

标签: delphi

这是delphi Berlin下的TSysCharSet声明

TSysCharSet = set of Char deprecated; // Holds Char values in the ordinal range of 0..255 only.

它现在已被弃用,但取而代之的是什么?我只需要为我的函数提供一些像['',#9,#13,#10]这样的字符集

1 个答案:

答案 0 :(得分:2)

如果您只需携带一组(unicode)字符,那么您就不需要TSysCharSet。只需使用char的动态数组:

var
   MyCharArray : TArray<char>;

begin
   MyCharArray := [' ',#9,#13,#10]; 
end;

TSysCharSet主要用于CharInSet例程;在文档中,它们引用TCharHelper作为CharInSet的替代,因为TSysCharSet不能包含unicode字符。

uses System.Character;

var
   WhiteSpace : TSysCharSet;
   ac : ansichar;

   c : char;

begin
   // replace this....
   ac := #9;
   WhiteSpace := [' ',#9,#13,#10];

   if CharInSet(ac, WhiteSpace) then
      begin
      end;  

   // ...with this:

   c := #9;
   if c.IsWhiteSpace then
      begin
      end
end