为什么TStringList会抛出access violation 异常?

cnmyth 2010-07-10 12:41:46
抛出access violation at address


procedure TForm1.Button1Click(Sender: TObject);
var
list: TStrings;
mychar: Pchar;
begin
list := TStringList.Create;
list.Delimiter := '^';

//这边进行任何对list,mychar的操作 怎么会导致下面抛出抛出access violation at address?

try
if (list<>nil) and (mychar<>nil) then list.DelimitedText := strPas(mychar);
except
on e : Exception do
begin
MessageBox(Handle, PChar('错误:' + e.Message), '错误信息', MB_ICONERROR);
Exit;
end;
end;
end;
...全文
124 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnmyth 2010-07-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xinghun61 的回复:]
你对mychar都没有赋值,strPas(mychar)这句应该会抛出异常的
[/Quote]
没赋值也不会啊
判断是否赋值是Assigned吗?
xinghun61 2010-07-10
  • 打赏
  • 举报
回复
你对mychar都没有赋值,strPas(mychar)这句应该会抛出异常的
iqyely 2010-07-10
  • 打赏
  • 举报
回复
恩,需要先初始化,另外也不需要StrPas转,直接赋值即可。
SQLDebug_Fan 2010-07-10
  • 打赏
  • 举报
回复
mychar: Pchar;

局部变量指针需要初始化,不申请空间,起码也要置为nil
金卯刀 2010-07-10
  • 打赏
  • 举报
回复
对于局部变量要先进行初始化....
cnmyth 2010-07-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sanguomi 的回复:]
没发现楼主说的情况。
[/Quote]
也不知道为什么 程序就在那句抛出异常
JeffChung 2010-07-10
  • 打赏
  • 举报
回复
直接这样试试?
list.DelimitedText := mychar;

sanguomi 2010-07-10
  • 打赏
  • 举报
回复
没发现楼主说的情况。

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧