我用BCB动态创建一个按钮时是这样:
TButton *My_Button;
My_Button=new TButton(NULL);
……用DELPHI时,我想是这样
var
MyButton:^TButton;
begin
MyButton^:=TButton.Create(nil);
MyButton^.Top:=200;
MyButton^.Left:=0;
MyButton^.Width:=100;
MyButton^.Height:=50;
出错!将^取掉就好了,
那位能给我讲讲什么时候该用 ^,什么时候不用^
TButton *My_Button;
My_Button=new TButton(NULL);
……用DELPHI时,我想是这样
var
MyButton:^TButton;
begin
MyButton^:=TButton.Create(nil);
MyButton^.Top:=200;
MyButton^.Left:=0;
MyButton^.Width:=100;
MyButton^.Height:=50;
出错!将^取掉就好了,
那位能给我讲讲什么时候该用 ^,什么时候不用^
B^ := TButton.Create(Self) ;
with b^ do
begin
Top := 10 ;
Left := 10 ;
Height := 10 ;
Width := 10 ;
Parent := Self ;
end ;
B^ := TButton.Create(Self) ;
这两句的具体意思?
MyButton:TButton;
begin
MyButton:=TButton.Create(nil);
MyButton.Top:=200;
MyButton.Left:=0;
MyButton.Width:=100;
MyButton.Height:=50;
BCB中是不能直接定义一个VCL控件的,因为在C++中定义一个对象编译器就会自动调用构造函数,直接定义代价比较高,程序编译效率就会降低。
DELPHI中编译器行为不同于BCB,只有显式调用CREATE方法才完成了一个对象的构造,所以在DELPHI中可以直接定义一个VCL控件,即使是动态创建的控件也是可以这样定义。
^我在DELPHI中用的很少,除非是非得用指针不可,对于动态创建控件不必如此,注意编译器的区别就很好理解了。