ListView1中的数据是从数据表格里读出来的
//循环写入    
.........
    Open;
    First;
    ListView1.Items.Clear;
    while not eof do
    begin
      MyListItem:=ListView1.Items.Add;
      For i:=0 to 10 do MyListItem.SubItems.Add('');
      MyListItem.Caption:=FieldByName('运单号').AsString; //要取的那个值
      MyListItem.SubItems[0]:=FieldByName('收货人').AsString;
      MyListItem.SubItems[1]:=FieldByName('发货人').AsString;
      .........
      next;
    end; 那么我选中一行记录. 去判断它(某个字段值)是不是在另外的一个表里也有出现,  那么我应该在它的哪个事件里事件去判断, 我的SQL 语名 Where 字段名= ...(怎么去取选中记录的那个字段值呢),如果选取多行,那又如何循环判断呢?
因为没有用到过这个控件, 也没有参加过这个程序的设计, 我只是半路上的程咬金, 各位帮帮忙了.

解决方案 »

  1.   

    for i:=0 to ListView1.Items.Count-1 do
        if ListView1.Items[i].Selected=true then//判断是否选中了i行
        begin
            ListView1.Items[i].SubItems[0] ------------收货人
        end;
      

  2.   


    根据你回答的:
    我 写的
     for i:=0 to ListView1.Items.Count-1 do
       Begin 
         if ListView1.Items[i].Selected=true then//判断是否选中了i行 
            begin 
             Panduan(ListView1.Items[i].Caption)----------Panduan:过程-- (运单号) 存在另外的一个表中; 
             
            end;
       End;
       现在还是有点糊涂,那么 循环也是这样判断了--也就这段代码就能完成了喽
      
      

  3.   

    ListView.Selected可以取得选中的item.
    if ListView1.Selected <> nil then
    begin
      ListView.Select.SubString[0]   .....
    end;
      

  4.   

    哦,看错要求了.
    listview有个SelCount属性可以取得被选中的个数.然后循环:
    使用    function GetNextItem(StartItem: TListItem;
          Direction: TSearchDirection; States: TItemStates): TListItem; 这个函数最后一个参数:
      TItemState = (isNone, isCut, isDropHilited, isFocused, isSelected, isActivating);
      TItemStates = set of TItemState;States可以指定为:isSelected一直到GetNextItem返回的结果为NIL.