继承Tfilestream类的问题(50)

  • 主题发起人 lebronjames
  • 开始时间
L

lebronjames

Unregistered / Unconfirmed
GUEST, unregistred user!
目的是想把Tfilestream 所需的参数和获取的值还有Tfilestream封装到一个类里面进行操作。定义一个类,typeTlf = class(Tfilestream) a:string
b:integer
fz:Tfilestream;end;然后写一个函数function getsb():integer;varobj:Tlf;beginobj.a:='abc.dat';obj.fz:=TFileStream.Create(obj.a, fmOpenRead or fmShareExclusive);...obj.fz.Free;end;打开文件并读写后在obj.fz.Free执行之前和程序结束的时候会报 "Access Violation...."这个错误,这是为何?是TFileStream.Create需要重载吗??正确写法是什么?
 
Z

zhengrong117

Unregistered / Unconfirmed
GUEST, unregistred user!
Tlf = record a:string
b:integer
fz:Tfilestream;end;//感觉你想要的只是个结构体
 
L

lebronjames

Unregistered / Unconfirmed
GUEST, unregistred user!
不光是,为了简单才写这么点的,实际中因为还要给Tfilestream添加一些东西,从Tfilestream继承会方便一些吧?
 
Z

zhengrong117

Unregistered / Unconfirmed
GUEST, unregistred user!
你定义的 Tlf = class(Tfilestream)obj:Tlf;obj:=Tlf.Create(obj.a, fmOpenRead or fmShareExclusive);//obj该创建的还是要创建吧还有你继承的类里面还有个 fz:Tfilestream
虽然不会出现什么问题,单会把自己搞乱的。既然想从新继承个类就该有的东西全都补全吧。正确的写法是什么?随便拖个 按钮或者 panel 跟踪进去看就是了。
 
顶部