问个跨单元访问事件成员的问题??
farfh 2004-03-02 05:28:23 我希望实现这样一段,假设有数个Edit:e1,e2,e3,我想它们共同使用一个事件函数OnKeyPress,
起初我直接在另外一个单元中声明一OnKeyPressEdit的函数,声明如下
procedure OnKeyPress1(Sender: TObject; var Key: Char);
现在我使用e1.OnKeyPress:=OnKeyPress1;
编译不通过。后来我将OnKeyPress1声明到一个类中,声明如下:
TCFEDIT=class(TObject)
private
e:array [1..5] of TCustomEdit;
public
procedure OnKeyPress1(Sender: TObject; var Key: Char);
procedure OnKeyPress2(Sender: TObject; var Key: Char);
procedure OnKeyPress3(Sender: TObject; var Key: Char);
procedure OnKeyPress4(Sender: TObject; var Key: Char);
procedure UpdateControl;
procedure SetSTR(ISRC:string);
function GetSTR:string;
constructor Create(pe1,pe2,pe3,pe4:TCustomEdit);
destructor Destroy;override;
end;
然后声明一TCFEDIT类型的变量cfe;
现在使用e1.OnKeyPress:=cfe.OnkeyPress1;
编译通过。
但是,问题产生在这里,我试图在构造函数里面使用OnKeyPress,却始终说我没有声明,示意代码如下:
constructor TCFEDIT.Create(pe1,pe2,pe3,pe4:TCustomEdit);
begin
pe1.OnKeyPress:=OnKeyPress1;
end;
编译时候始终报错说OnKeyPress没有声明,我想来想去都不明白,后来我把TCFEDIT声明为TWinControl类的继承类,一样不成,百思不得其解,请问各位delphi高手,可有办法解决???(利用以上的方法,仅就访问事件而言,不是指控件子类化之类的哈^_^)