Subject:
控件注册运行期问题, 有点急有点急....
[Print This Page]
Author:
jhsgcigi
Time:
2010-11-15 09:22
Subject:
控件注册运行期问题, 有点急有点急....
有一个这样的问题, 我写一个新控件, 新控件有一个属性为TMEMO类型的, 类如下图
TsnCodeEdit = class(TPanel)
private
FMemo: TMemo;
FCCDDA: TAABBB;
procedure SetMemo(Value: TMemo);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property Memo: TMemo read FMemo write SetMemo stored True;
end;
constructor TsnCodeEdit.Create(AOwner: TComponent);
begin
inherited;
FMemo := TMemo.Create(Self);
FMemo.Parent := Self;
FMemo.Align := alClient;
end;
procedure TsnCodeEdit.SetMemo(Value: TMemo);
begin
if Value<>nil then FMemo.Assign(Value);
end;
我在属性观察器中可以看到MEMO, 如图
关键无论我如何设置MEMO, 设计期没有问题,一运行就变成原样了, 这是怎么回事,原以为是SetMemo出了问题, 后改成直接FMEMO.COLOR=VALUE.COLOR,还是不行
大虾指点一下
Image Attachment: [aa]
aa.bmp
(2010-11-15 09:22, 218.2 K) / Download count 35
http://bbs.cnpack.org/attachment.php?aid=784
Author:
jhsgcigi
Time:
2010-11-15 09:28
Subject:
附加
还有如果我用 一个类来管理它,做值的中转则就没有问题了.
如我用如下
TAABBB = class(TPersistent)
private
FMemo: TMemo;
FColor: TColor;
procedure SetColor(Value: TColor);
public
constructor Create;
destructor Destroy;
published
property Color: TColor read FColor write SetColor;
end;
SetColor: Fmemo.Color=Value;
然后在TsnCodeEdit中加个这个TAABBB的一实例, 并把TSNCODEEDIT中的FMEMO附值给这个实例的FMEMO就可以 哎不晓得是这怎么回事, LIUXIAO 帮忙。。。
[
本帖最后由 jhsgcigi 于 2010-11-15 09:30 编辑
]
Author:
jhsgcigi
Time:
2010-11-15 13:14
Subject:
已经解决
FMEMO要加上 FMEMO.SETSUBCOMPOENT(TRUE)
Welcome to CnPack Forum (http://bbs.cnpack.org/)
Powered by Discuz! 5.0.0