procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i:=0 TO listbox1.items.count-1 do
if listbox1.items[i]=edit1.text then
begin
listbox1.items.Delete(i);
end
end;
var i:integer;
begin
for i:=0 TO listbox1.items.count-1 do
if listbox1.items[i]=edit1.text then
begin
listbox1.items.Delete(i);
end
end;
解决方案 »
- 用指针和WriteProcessMemory修改内存的问题
- delphi中控件treeview怎么重复调用?
- 有谁知道 Remete Administrator 远程控制软件的原理!它的速度这么快,用的是什么关键技术?
- 请问怎么找机器硬盘的序列号?
- 如何导出ORACLE数据库中某个用户的所有表结构?
- 请问按钮里写什么语句可以达到和点form的X一样的效果?
- 如何实现带checkbox的treeview控件,急等
- 救命呀,关于access数据库备份的问题,----------在线等待
- 为什么动态菜单加入后不能显示?
- 关于取DATASET的数据问题。
- DBgrid 问题
- 怎么用程序实现post啊?
if listbox1.items[i]=edit1.text then
begin
listbox1.items.Delete(i);
end
var i:integer;
begin
for i:=0 TO listbox1.items.count-1 do
begin
if listbox1.items[i]=edit1.text then listbox1.items.Delete(i);
end;
你DELETE掉一个ITEM后,后面的ITEM提上来填补空缺.
如:你删除2,原来的就变成2了.
所以到了i变到大了以后,后面的它会发现ITEM[i]找不到!
原因帮你找到了,会解决了吧!
你DELETE掉一个ITEM后,后面的ITEM提上来填补空缺.
如:你删除2,原来的3就变成2了.
所以到了i变到大了以后,后面的它会发现ITEM[i]找不到!
原因帮你找到了,会解决了吧!
var i:integer;
begin
i :=0;while i<> listbox1.items.count do begin
if listbox1.items[i]=edit1.text then
listbox1.items.Delete(i)
else
i:=i+1;
end;
end;
应该在listbox1.items.Delete(i)
后加一句i:=i-1;就行了!
你把listbox1.items.count 传给一个变量
i:=i-1;之后,再把它也减1.
var i,ItemCount:integer;
begin
ItemCount:=listbox1.items.count-1
for i:=0 TO ItemCount do
if listbox1.items[i]=edit1.text then
begin
listbox1.items.Delete(i);
i:=i-1;
ItemCount:=ItemCount-1;
end
end;
在你给参数赋值的时候不要使用数组的下标,而直接使用StoredProc的ParamsByName()这个属性来给参数赋值,这样就不会引起上面的问题!
大家可以试一下,如果有问题可以直接给我发邮件![email protected]