Delphi问题:TStrings动态和静态的差别

设我有一自定义控件中用到一公用ilist定义为TStrings这个iList可以是动态创建也可以直接绑定到一控件属性上iList:=Memo1.Lines上用到iList... 设我有一自定义控件中用到一公用ilist定义为TStrings
这个iList可以是动态创建也可以直接绑定到一控件属性上
iList:=Memo1.Lines上
用到iList时有
if ilist=nil then ilist:=TStringList.create;
但在释放资源时如果不是动态创建的ilist会出现错误
如何才能区别这个ilist是动态创建的还是被绑定的呢?
诸位说的都有道理,不过我的确想知道怎么样去识别区分,难道在delphi中就这么困难?
折中办法是不少,可我并不想这么做
carmen816:这个iList是在控件中,无法得知父窗口中是不是有Memo1
展开
 我来答
keyiwenwo
2009-12-28 · TA获得超过8871个赞
知道小有建树答主
回答量:993
采纳率:100%
帮助的人:1046万
展开全部
释放的时候也判断,
if(iList<>nil) then iList.Free;

///////////////////

反正都要使用,就建立一个动态的,

iList:=TStringList.create;

memo使用
iList.AddStrings(Memo1.Lines);

其他正常使用,不影响释放。
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
carmen816
2009-12-27 · TA获得超过159个赞
知道小有建树答主
回答量:246
采纳率:0%
帮助的人:173万
展开全部
绑定的,你不能自己去释放。
你可以判断
if iList <> Memo1.Lines then
iList.Free;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
testerHooK
2009-12-27 · 超过67用户采纳过TA的回答
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:193万
展开全部
恩,还是统一动态创建的好,也方便释放。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TheFiend
2009-12-28 · TA获得超过625个赞
知道大有可为答主
回答量:1346
采纳率:0%
帮助的人:1211万
展开全部
自己建,别去控制别人的资源.
用assign复制一份过来就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式