当前位置:主页>仓库管理软件> 列表

TstringList的定位错误问题 找用友erpu8软件

销售管理软件版1楼: SkillID_1 := ADOQuery1.Fieldbyname(''id'').Value;
SkillStringList.Find(inttostr(SkillID_1),index);
SkillStringList.Delete(index);

可是删除的记录不对,请问问题出在哪里?

2楼: 我看了一下,明明是11,22,33,44;可是为什么SkillStringList.Find(inttostr(11),index)却是4呢? 如用友erpu8软件

3楼: index := SkillStringList.IndexOf(inttostr(SkillID_1));
if index <> -1 then
SkillStringList.Delete(index);

4楼: 这个。。。。。find很奇怪 如果未找到他会把index的值返回1。。。。
你加个判断
SkillID_1 := ADOQuery1.Fieldbyname(''id'').Value;
if SkillStringList.Find(inttostr(SkillID_1),index) then
SkillStringList.Delete(index);

5楼: 这Find本身一点都不奇怪。
Find方法的返回值表示了是否找到,如果为False,则index的值已经没有用了。
如果返回值为True,Index的值是不会有误的。

6楼: royal1442老兄的没问题;看看大家对find还有说法吗,如果没有我就结帖;
因为我觉得这个问题很奇怪,就某一个数有问题,其他都没有问题,

showmessage(SkillStringList.text)的排列命名是11、22、33、44,可是SkillStringList.Find(inttostr(11),index)却是3,我发现他在DBGrid里的位置是三,不知道和这个有关没?

销售管理软件版7楼: 接受答案了.