不管会不会,近来就看看就行

militant 2003-10-21 11:04:20
procedure TMainForm.ListBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
i,j:integer;
begin
if(Key=VK_DELETE)then
begin
i:=ListBox1.Items.Count;
if(i>0)then
begin
for j:=i-1 downto 0 do ****
if(ListBox1.Selected[j]=True)then
ListBox1.Items.Delete(j);
end;
end;
end;
***这里,为什么删除从后面开始呢?书上说如果从前面删除则删除一项后,后面的项对弈的index都要发生变化,可是如果从后面开始删除的话,要是我删除了中间一项呢?那这一项的后面的index不都也要变了吗?
希望高人帮我解开这个结。谢谢!!!!
...全文
72 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nyf1220 2003-10-21
  • 打赏
  • 举报
回复
郁闷,连个分都没有!
就是按“delete”键,删除记录(从后面)
hmzgz81 2003-10-21
  • 打赏
  • 举报
回复
你这个循环就是最后面的记录开始删除啊,你重中间的开始删除不是和重前面一样吗!和书上说的原因一样啊!
hmzgz81 2003-10-21
  • 打赏
  • 举报
回复
呵呵 楼主是不是没分给了!

5,388

社区成员

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

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