我已经成功安装了ehlib3.5组件,而且运行它的DEMO1和DEMO2都没有问题,可我在运行我的程序时,提示如下错误:
[Error] DBGridEhImpExp.pas(950): Cannot assign to a read-only property
[Error] DBGridEhImpExp.pas(951): Cannot assign to a read-only property
[Error] DBGridEhImpExp.pas(952): Cannot assign to a read-only property
[Error] DBGridEhImpExp.pas(953): Cannot assign to a read-only property
[Fatal Error] DBGridEh.pas(1705): Could not compile used unit 'DBGridEhImpExp.pas'LINE 951 是:
with FColCellParamsEh do
begin
> Row := -1;
> Col := -1;
> State := [];
> Font := AFont;
Background := ColumnsList[i].Color;
NewBackground := ColumnsList[i].Color;
……
我看了'DBGridEhImpExp.pas'文件中,FColCellParamsEh是如下定义的:
private
FColCellParamsEh: TColCellParamsEh;TColCellParamsEh 在"dbGridEH.pas"中是如下定义的:
TColCellParamsEh = class
protected
FAlignment: TAlignment;
FBackground: TColor;
FCheckboxState: TCheckBoxState;
FCol: Longint;
FFont: TFont;
FImageIndex: Integer;
FReadOnly: Boolean;
FRow: Longint;
FState: TGridDrawState;
FText: String;
public
property Alignment: TAlignment read FAlignment write FAlignment;
property Background: TColor read FBackground write FBackground;
property CheckboxState: TCheckBoxState read FCheckboxState write FCheckboxState;
> property Col: Longint read FCol write FCol;
> property Font: TFont read FFont write FFont;
property ImageIndex: Integer read FImageIndex write FImageIndex;
property ReadOnly: Boolean read FReadOnly write FReadOnly;
> property Row: Longint read FRow write FRow;
> property State: TGridDrawState read FState write FState;
property Text: String read FText write FText;有什么问题吗?
[Error] DBGridEhImpExp.pas(950): Cannot assign to a read-only property
[Error] DBGridEhImpExp.pas(951): Cannot assign to a read-only property
[Error] DBGridEhImpExp.pas(952): Cannot assign to a read-only property
[Error] DBGridEhImpExp.pas(953): Cannot assign to a read-only property
[Fatal Error] DBGridEh.pas(1705): Could not compile used unit 'DBGridEhImpExp.pas'LINE 951 是:
with FColCellParamsEh do
begin
> Row := -1;
> Col := -1;
> State := [];
> Font := AFont;
Background := ColumnsList[i].Color;
NewBackground := ColumnsList[i].Color;
……
我看了'DBGridEhImpExp.pas'文件中,FColCellParamsEh是如下定义的:
private
FColCellParamsEh: TColCellParamsEh;TColCellParamsEh 在"dbGridEH.pas"中是如下定义的:
TColCellParamsEh = class
protected
FAlignment: TAlignment;
FBackground: TColor;
FCheckboxState: TCheckBoxState;
FCol: Longint;
FFont: TFont;
FImageIndex: Integer;
FReadOnly: Boolean;
FRow: Longint;
FState: TGridDrawState;
FText: String;
public
property Alignment: TAlignment read FAlignment write FAlignment;
property Background: TColor read FBackground write FBackground;
property CheckboxState: TCheckBoxState read FCheckboxState write FCheckboxState;
> property Col: Longint read FCol write FCol;
> property Font: TFont read FFont write FFont;
property ImageIndex: Integer read FImageIndex write FImageIndex;
property ReadOnly: Boolean read FReadOnly write FReadOnly;
> property Row: Longint read FRow write FRow;
> property State: TGridDrawState read FState write FState;
property Text: String read FText write FText;有什么问题吗?
楼主,该模块是否使用继承方式编码阿?
如果是,试一试编译程序时先打开基类.
再单击->Library Path 旁的按钮->在此页中增加你安装的ehlib3.5组件的路径就OK了!
分析现象,我想是FColCellParamsEh对象是个TColCellParamsEh类,此类在dbGridEH.pas中定义的,看程序,其中的COL和ROW等属性,应该没有问题啊,为什么显示Cannot assign to a read-only property呢。我试着去掉“write FCol”,还是不行。
请各位高手帮忙分析一下原因。奇怪的是我编译DELPHI自带的DEMO没有问题,可编译我的程序说出现的提示。我保证,我的程序在EHLIB2.4下编译没有问题。