D2005中的一个数组创建问题,看懂的给分 ( 积分: 200 )

  • 主题发起人 主题发起人 yiemyn
  • 开始时间 开始时间
Y

yiemyn

Unregistered / Unconfirmed
GUEST, unregistred user!
在窗体上放上个DataGrid,设置它的TableStyles;相关的的生成低码如下:
在TWinForm = Class......下面:
strict private
DataGridTableStye1: System.Windows.Forms.DataGridTableStyle;
DataGridTableStye2: System.Windows.Forms.DataGridTableStyle;
在procedure TWinForm.InitializeComponent下面:
Type
TArrayOfSystem_Windows_Forms_DataGridTableStyle = array of System.Windows.Forms.DataGridTableStyle;
begin
self.DataGridTableStyle1 := .Windows.Forms.DataGridTableStyle.Create;
self.DataGridTableStyle2 := .Windows.Forms.DataGridTableStyle.Create;
self.DataGridTalbeStyles.AddRang(TArrayOfSystem_Windows_Forms_DataGridTableStyle.Create(self.DataGridTableStyle1,self.DataGridTableStyle2));
end;

---------------------------------------------------
对TArrayOfSystem_Windows_Forms_DataGridTableStyle.Create(self.DataGridTableStyle1,self.DataGridTableStyle2)这一句中的Create甚是不解,这是什么语法,有理解的给说得清楚点,细致点。谢谢,期待中................
主要是想知道的是这个Create是哪个对象的方法,但如果说Create是前面这个动态数组的方法,可是也讲不太通吧,或都SDK上哪里有说明的,哪位看到了说下也结帖了.....
在CSDN上发了几天的了也没人回答,还是回来听听吧,用过的有人能给说说吗?????
 
在窗体上放上个DataGrid,设置它的TableStyles;相关的的生成低码如下:
在TWinForm = Class......下面:
strict private
DataGridTableStye1: System.Windows.Forms.DataGridTableStyle;
DataGridTableStye2: System.Windows.Forms.DataGridTableStyle;
在procedure TWinForm.InitializeComponent下面:
Type
TArrayOfSystem_Windows_Forms_DataGridTableStyle = array of System.Windows.Forms.DataGridTableStyle;
begin
self.DataGridTableStyle1 := .Windows.Forms.DataGridTableStyle.Create;
self.DataGridTableStyle2 := .Windows.Forms.DataGridTableStyle.Create;
self.DataGridTalbeStyles.AddRang(TArrayOfSystem_Windows_Forms_DataGridTableStyle.Create(self.DataGridTableStyle1,self.DataGridTableStyle2));
end;

---------------------------------------------------
对TArrayOfSystem_Windows_Forms_DataGridTableStyle.Create(self.DataGridTableStyle1,self.DataGridTableStyle2)这一句中的Create甚是不解,这是什么语法,有理解的给说得清楚点,细致点。谢谢,期待中................
主要是想知道的是这个Create是哪个对象的方法,但如果说Create是前面这个动态数组的方法,可是也讲不太通吧,或都SDK上哪里有说明的,哪位看到了说下也结帖了.....
在CSDN上发了几天的了也没人回答,还是回来听听吧,用过的有人能给说说吗?????
 
D2005安装后,运行需要注册,如何办?
否则不让用。
 
TArrayOfSystem_Windows_Forms_DataGridTableStyle.Create(self.DataGridTableStyle1,self.DataGridTableStyle2)
自然是这个Array的方法.
Array of (delphi.NET)等同于System.Array,这个Array也是一个类.
这句话的一个是创建一个大小为2的数组,内容为两个参数.我想你查阅System.Array应该可以找到相应的构建函数
 
我当然查过SDK,包括Delphi for .NET 的Array的说明,没有任何一个地方的说明提供了这么一个Create方法,在.NET中所有的基础类型都被封装成了结构和类,文档中对这个Array类型的说明没有一处给出这么一个构造方法,而且即使你在Code中同样使用,试试吧,看对不对,我试过了,答案令人失望的...............
 
'D2005安装后,运行需要注册,如何办?'
TO
LanHer:
办法有一个啊,破解了用用啊,除了运行慢点,Borland的文档差的够呛,还是可以的.
 
这个似乎是一个编译器的魔法甜点,我也没有能够找到相关的资料.
不过这个语法可以一次来检验
type TArray_Of_Char = Array of Char;
var
charArr : TArray_Of_Char;
begin
charArr = TArray_Of_Char.Create('A', 'B');
end;
这个语法在Delphi2005当中的Win32/D.NET都支持,而检查他们生成的MSIL/汇编,我们并不能够看到调用某一个构造函数,反而是由一大堆的代码构成了此逻辑.因此看起来似乎这是一个编译器的魔法甜点.
不过我们也不能肯定,不要忘了D2005支持inline,因此这也可能是某一个inine函数的杰作.不过仍然不是很和逻辑.因为如果是由inline函数生成的,那么这似乎涉及泛型/不定参数函数调用,不太对头.

因此我相信,这是一个编译器的魔法甜点(也许应该说是其语法的一部分).只是没有合适的文档而已.至少我不能够找得到相关的文档.
 
已经搞懂了,是delphi中的动态数组的新语法,在8。0版本就有了,谢谢进来的各位。
 
多人接受答案了。
 
后退
顶部