宽度:listview.columns[i].width;
高度:(Font.Size+2)*2

解决方案 »

  1.   

    那么怎样得到listview当前的滚动条位置呢?
    水平,垂直。谢谢!
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      SI: TScrollInfo;
    begin
      SI.cbSize := SizeOf(TScrollInfo);
      SI.fMask := SIF_ALL;
      GetScrollInfo(Memo1.Handle, SB_VERT, SI); 
      if SI.nPos + SI.nPage >= SI.nMax then ShowMessage('已经到底了!');
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
    i:integer;
    begin
      i:=random(20);
      label1.Caption:=inttostr(i+1);
      listview1.Scroll(0,(listview1.font.size+2)*listview1.Items.Count*(-1));//滚动到最上边,但是很多时候都不能到最上边。尤其item多的时候.
      listview1.Scroll(0,listview1.ItemIndex*(listview1.Font.Size+2));
    //滚动到i位置。
      listview1.ItemIndex:=i;
    end;为什么不能滚动到最上边呢?
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
    i:integer;
    begin
      i:=random(20);
      label1.Caption:=inttostr(i+1);
      listview1.Scroll(0,(listview1.font.size+2)*listview1.Items.Count*(-1));//滚动到最上边,但是很多时候都不能到最上边。尤其item多的时候.
      listview1.Scroll(0,listview1.ItemIndex*(listview1.Font.Size+2));
    //滚动到i位置。
      listview1.ItemIndex:=i;
    end;为什么不能滚动到最上边呢?
      

  5.   

    感谢您的解答!
    还有一事不明:
    var
    si:tscrollinfo;
    begin
      si.cbSize:=sizeof(tscrollinfo);
      si.fMask:=sif_all;
      getscrollinfo(listview1.Handle,SB_VERT,si);
      si.nPos:=listview1.ItemIndex
      setscrollinfo(listview1.Handle,sb_vert,si,true);
    end;
    为什么不能滚动到itemindex位置呢?
    谢谢!