我初学Delphi ,有段程序如下:
var
slTmp : TStringList ;
begin
slTmp := TStringList.Create;
slTmp := TStringList( Memo.Lines ) ;
if slTmp.Strings[0] <> 'BEGIN' then
begin
......
end;
......
end;
第一次执行没有问题,但是再次执行时,在判断语句处出错,这是怎么回事啊?
var
slTmp : TStringList ;
begin
slTmp := TStringList.Create;
slTmp := TStringList( Memo.Lines ) ;
if slTmp.Strings[0] <> 'BEGIN' then
begin
......
end;
......
end;
第一次执行没有问题,但是再次执行时,在判断语句处出错,这是怎么回事啊?
解决方案 »
- ClientDataSet.DataRequest()多个参数的问题???
- DBGrid控制输出的问题?请求高手
- 如何制作弹出汽泡式帮助?
- 有这样一个问题:怎样在后台保存一个以时间为文件名的文件?不需要打开SaveDilog对话框.
- 重分求取Rabin-Miller算法源码及Lehmann算法源码!!!!!!!!!!!!!!
- 如何将字符串转换成字符串流啊
- TBatchMove控件的batAppend模式总是出错,而batcopy则正常
- 用Query连表问题
- 请问如何取得一个像素点的颜色,谢谢
- 要对Excel自动化编程,我去哪里或怎样得到有关Excel的一些方法和属性的解释
- 奇怪的问题,我的多文档窗体的主窗体的WindowMenu已经指向一个菜单,为什么当打开一个子窗体时这个菜单下没有这个子窗体?
- 关于饼状图的使用,在线等候!!!
slTmp : TStringList ;
begin
slTmp := TStringList.Create;
slTmp.Clear
try
slTmp := TStringList( Memo.Lines ) ;
if slTmp.Strings[0] <> 'BEGIN' then
begin
......
end;
......
finally
slTmp.Clear ;
slTmp.Free ;
end ;
end;
if not Assigned(slTmp) then slTmp := TStringList.Create;
有什么用?
这样:
sltmp.text:=memo1.lines.text;
还有,你说第二次运行到sltmp.strings[0]的时候就出错?如果是"list index out of bounds -1"那么就有可能是memo的内容发生了变化,根本就没有内容,以至于sltmp连一行都没有。
sltmp.text:=memo1.lines.text; 是完全正确的,
就算用slTmp := TStringList( Memo.Lines ),运行正确
但是关闭程序时, 会出现错误,呵呵,象你这么一改,就完全正确
马上给分,每人100, 你另加100 , Thank !