高分讨论:什么叫私有类,私有类不能直接引用吗?(200分)

  • 主题发起人 主题发起人 forgot2002
  • 开始时间 开始时间
F

forgot2002

Unregistered / Unconfirmed
GUEST, unregistred user!
比如说TRichEditStrings这个类是继承TStrings的,但TString可以直接创建对象,
TRichEditStrings却不能,我如何能在程序里直接引用或者继承TRichEditStrings
类呢?对了,TRichEditStrings的定义是在ComCtrls单元中,我已经引用了这个单元,
但为什么还是无法使用TRichEditStrings创建对象呢?我该如何才能用TRichEditStrings
类来创建对象呢?难道只有把VCL源码原原本本复制到一个新Unit中吗?
 
他是在单元的实现部分定义的, 当然你不能用了. 如果一定要使用, 有一个变通的办法
利用TRichEdit的Lines属性, 他实际上就是TRichEditStrings类型的.
 
具体应该怎么使用?
 
我想你对Object Pascal中类的含意还不够深刻!
首先TStrings对象也不能创建
因为它是抽象的类
要创建只能这样:
var
Lines:TStrings;
begin
Lines:=TStringsList.Create;
end;

而TRichEditStrings也一样它们之间可以相互赋值
 
楼上的纠错好像与我的问题没什么相关吧?我想使用TRichEditStrings类,应该怎么做?

 
NeutronDelphi,已经给你正确答案了。

如果这也看不懂,那你的问题不适合你。
 
呵,我确实没看懂,只怪自己水平太菜。
 
To :forgot2002
你的mail多少?


私有类只能在类内引用。
例如:
procedure TControl.SetText(const Value: TCaption);
begin
if GetText <> Value then SetTextBuf(PChar(Value));
//载类内可调用
end;
vat
Control1: TControl;
Control1.FText;//错误的




 
楼上说的我知道,我问的问题是:怎样使用TRichEditStrings创建对象?为什么都没有一个
具体做法呢?我现在就是想使用TRichEditStrings,明确地说,我想使用具有RichEdit属性
的TStrings对象(NeutronDelphi硬说是TStringsList对象,纠缠在这个问题上有必要吗?)。
我的E-mail是:coolforgot@sina.com
 
你继承时,在构造函数中没写东西吧。
就是没写
inherited
inherited
 
因为他定义在implementation下面,别的单元不能用到他
 
多人接受答案了。
 
后退
顶部