Y
YaoChangLi
Unregistered / Unconfirmed
GUEST, unregistred user!
我进行控件开发时,遇到了一个问题,
例如下面的程序,注册一个新控件TMyEdit,
其中增加了一个属性Control,能选定窗体中的TComponent类的控件
程序如下:
unit MyEdit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TMyEdit = class(TEdit)
private
{ Private declarations }
FC: TComponent;
procedure SetFC(Value: TComponent);
protected
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
property Control: TComponent read FC write SetFC default nil;
end;
procedure Register;
implementation
procedure TMyEdit.SetFC(Value: TComponent);
begin
if Value = nil then
FC:= nil
else
if FC <> Value then
FC:= Value;
end;
procedure Register;
begin
RegisterComponents('Samples', [TMyEdit]);
end;
end.
控件注册成功,无错误。
在窗体上放置一个TMyEdit, 再随便放置一个Delphi自带的控件,如( TMainMenu; TImageList等...)
将TMyEdit的Control属性指向(TMainMenu; TImageList等...)
然后用Delete键删除窗体中的(TMainMenu; TImageList等...),没有问题。
可是如果换成其他第三方面的控件,如 QReport, QRPLabel或自己注册的控件等,
然后重复以上操作,就出现错误 "Read Address xxxx FFFFFF ...."的错误,
TMyEdit.Control属性中出现一行怪字符,之后,出现其它一些读指针错误的对话框,有时造成Delphi无法退出。
不知为何?请各位多多指教。
例如下面的程序,注册一个新控件TMyEdit,
其中增加了一个属性Control,能选定窗体中的TComponent类的控件
程序如下:
unit MyEdit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TMyEdit = class(TEdit)
private
{ Private declarations }
FC: TComponent;
procedure SetFC(Value: TComponent);
protected
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
property Control: TComponent read FC write SetFC default nil;
end;
procedure Register;
implementation
procedure TMyEdit.SetFC(Value: TComponent);
begin
if Value = nil then
FC:= nil
else
if FC <> Value then
FC:= Value;
end;
procedure Register;
begin
RegisterComponents('Samples', [TMyEdit]);
end;
end.
控件注册成功,无错误。
在窗体上放置一个TMyEdit, 再随便放置一个Delphi自带的控件,如( TMainMenu; TImageList等...)
将TMyEdit的Control属性指向(TMainMenu; TImageList等...)
然后用Delete键删除窗体中的(TMainMenu; TImageList等...),没有问题。
可是如果换成其他第三方面的控件,如 QReport, QRPLabel或自己注册的控件等,
然后重复以上操作,就出现错误 "Read Address xxxx FFFFFF ...."的错误,
TMyEdit.Control属性中出现一行怪字符,之后,出现其它一些读指针错误的对话框,有时造成Delphi无法退出。
不知为何?请各位多多指教。