我很好奇为什么你可以在表单上删除TSQLConnection
,它会将Left
和Top
属性添加到.dfm
:
object Form1: TForm1
...
object SQLConnection1: TSQLConnection
Left = 8
Top = 8
end
end
但是当您在代码中创建它时,Left
和Top
属性不是TSQLConnection
类的成员:
interface
type
TForm1 = class(TForm)
SQLConnection1: TSQLConnection;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FSQLCon: TSQLConnection;
public
{ Public declarations }
end;
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
FSQLCon := TSQLConnection.Create(Self);
FSQLCon.Left := 280;
FSQLCon.Top := 200;
end;
编译:
[DCC Error] Unit1.pas(30): E2003 Undeclared identifier: 'Left'
[DCC Error] Unit1.pas(31): E2003 Undeclared identifier: 'Top'
为什么某些属性仅可用于.dfm
中的分配?您是否应该能够在表单(.pas
)中设置的代码(.dfm
)中分配所有属性?
仅供参考 - 使用Delphi XE2(更新3)
答案 0 :(得分:5)
TComponent的属性Left
和Top
确实不存在。在ReadProperty
和WriteProperties
使用的DefineProperties中为设计器设置。
看看classes.pas。