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%
帮助的人:1038万
展开全部
释放的时候也判断,
if(iList<>nil) then iList.Free;

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

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

iList:=TStringList.create;

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

其他正常使用,不影响释放。
Storm代理
2023-08-29 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP... 点击进入详情页
本回答由Storm代理提供
carmen816
2009-12-27 · TA获得超过159个赞
知道小有建树答主
回答量:246
采纳率:0%
帮助的人:172万
展开全部
绑定的,你不能自己去释放。
你可以判断
if iList <> Memo1.Lines then
iList.Free;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
testerHooK
2009-12-27 · 超过67用户采纳过TA的回答
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:192万
展开全部
恩,还是统一动态创建的好,也方便释放。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TheFiend
2009-12-28 · TA获得超过625个赞
知道大有可为答主
回答量:1346
采纳率:0%
帮助的人:1202万
展开全部
自己建,别去控制别人的资源.
用assign复制一份过来就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式