gpt4 book ai didi

delphi - Delphi/Windows 组合框中的空字符串导致访问异常

转载 作者:行者123 更新时间:2023-12-03 18:22:17 24 4
gpt4 key购买 nike

我有一个 Delphi 7.0 应用程序,每次从与组合框关联的字符串列表中写入空字符串时,都会抛出内存访问异常/消息框:

csvstrlst := combobox1.Items;

csvstrlst.clear;
csvstrlst.add(''); //problem
csvstrlst.add('a'); //no problem
csvstrlst.add(''); //problem
csvstrlst.add('b'); //no problem

//throws memory access messages (I think the writeln writes a line though)
for n := 1 to csvstrlst.Count do begin
writeln(out_file,csvstrlst.strings[n-1])
end;

//throws memory access messages (writeln does write a comma text string though)
writeln(out_file,csvstrlst.commatext);

在 Windows 7 或 XP 上运行。作为应用程序或在 D7 IDE 中。如果更改其所在表单的父级,则具有空字符串项的组合框也会导致相同的错误。

还有其他人见过或听说过这个问题吗?还有其他可用信息吗?

最佳答案

这是 QC 中描述的已知且已解决的错误:

TCombobox gives AV when selecting empty item from dropdown


虽然这是一个错误,但您不应重复使用控件中的部分来执行问题中所述的某些数据任务。

这样做不会保存任何内容,但大多数时候会产生不需要的副作用(控件被重新绘制和/或触发事件)

如果您想要一个TStringList,请创建一个实例。

csvstrlst := TStringList.Create;
try

// csvstrlst.Clear;
csvstrlst.Add( '' );
csvstrlst.Add( 'a' );
csvstrlst.Add( '' );
csvstrlst.Add( 'b' );

for n := 0 to csvstrlst.Count - 1 do
begin
WriteLn( out_file, csvstrlst[n] )
end;

WriteLn( out_file, csvstrlst.CommaText );

finally
csvstrlst.Free;
end;

关于delphi - Delphi/Windows 组合框中的空字符串导致访问异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17716205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com