listview 在ListView1Edited 时,如果重画listview,就是从库中取记录item.add,cation 重新附值时,总是出现读地址错,而且用断点查看,所有的过程都执行完后才出现的,哪位大侠能帮帮我.
procedure TFormKSGL.ListView1Edited(Sender: TObject; Item: TListItem;
  var S: String);
begin
 if (item.Index<>-1) and (trim(s)<>'')  then
 begin
     SetReName(item.Caption,s);//调用改名函数
 end else
 if trim(s)='' then
 begin
     Drawlistview; //重画listview
 end;
end;procedure  Drawlistview;
var
i:integer;
begin    with dm.KSGL do
    begin
     close;
     sql.Clear;
     sql.add('select * from ksgl order by ksID');
     open;
    end;     if dm.KSGL.IsEmpty then exit;
      formksgl.ListView1.Items.BeginUpdate;
   try
      formksgl.ListView1.Items.Clear;      while not dm.KSGL.eof do
      begin
         formksgl.listview1.Items.Add ;
         formksgl.listview1.Items[formksgl.listview1.Items.Count-1].Caption:=dm.KSGL.fieldbyname('ksname').AsString;
         if dm.KSGL.fieldbyname('TFactive').AsBoolean=true then
         formksgl.ListView1.Items.Item[formksgl.listview1.Items.Count-1].ImageIndex :=0 else
         formksgl.ListView1.Items.Item[formksgl.listview1.Items.Count-1].ImageIndex :=1;
      application.ProcessMessages;      dm.KSGL.Next;
    end;   finally
      formksgl.ListView1.Items.EndUpdate ;
   end;
end;另外我用了XPBarMenu 和dbgrideh ,它们都是处理消息的。不知和它们有没有关系啊。