考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
  当前位置:编程开发 > DotNET > Delphi.Net > 文章内容
  

Delphi基础教程:DelphiListView的用法

 [ 2017年9月16日 ] 【

  //增加

  i := ListView1.Items.Count;

  with ListView1 do

  begin

  ListItem:=Items.Add;

  ListItem.Caption:= IntToStr(i);

  ListItem.SubItems.Add('第 '+IntToStr(i)+' 行');

  ListItem.SubItems.Add('第三列内容');

  end;

  //按标题删除

  for i:=ListView1.Items.Count-1 downto 0 Do

  if ListView1.Items[i].Caption = Edit1.Text then

  begin

  ListView1.Items.Item[i].Delete(); //删除当前选中行

  end;

  //选中一行

  if ListView1.Selected <> nil then

  Edit1.Text := ListView1.Selected.Caption;

  // listview1.Items[Listview1.Items.Count -1].Selected := True;

  // listview1.Items[Listview1.Items.Count -1].MakeVisible(True);

  procedure TForm1.Button2Click(Sender: TObject); // 选择第一条

  begin

  listview1.SetFocus;

  listview1.Items[0].Selected := True;

  end;

  procedure TForm1.Button1Click(Sender: TObject); // 选择最后一条

  begin

  listview1.SetFocus;

  listview1.Items[Listview1.Items.Count -1].Selected := True;

  end;

  //这是个通用的过程

  procedure ListViewItemMoveUpDown(lv : TListView; Item : TListItem; MoveUp, SetFocus : Boolean);

  var

  DestItem : TListItem;

  begin

  if (Item = nil) or

  ((Item.Index - 1 < 0) and MoveUp) or

  ((Item.Index + 1 >= lv.Items.Count) and (not MoveUp))

  then Exit;

  lv.Items.BeginUpdate;

  try

  if MoveUp then

  DestItem := lv.Items.Insert(Item.Index - 1)

  else

  DestItem := lv.Items.Insert(Item.Index + 2);

  DestItem.Assign(Item);

  lv.Selected := DestItem;

  Item.Free;

  finally

  lv.Items.EndUpdate;

  end;

  if SetFocus then lv.SetFocus;

  DestItem.MakeVisible(False);

  end;

  //此为调用过程,可以任意指定要移动的Item,下面是当前(Selected)Item

  ListViewItemMoveUpDown(ListView1, ListView1.Selected, True, True);//上移

  ListViewItemMoveUpDown(ListView1, ListView1.Selected, False, True);//下移

  TListView组件使用方法

  引用CommCtrl单元

  procedure TForm1.Button1Click(Sender: TObject);

  begin

  ListView_DeleteColumn(MyListView.Handle, i);//i是要删除的列的序号,从0开始

  end;

  用LISTVIEW显示表中的信息:

  procedure viewchange(listv:tlistview;table:tcustomadodataset;var i:integer);

  begin

  tlistview(listv).Items.BeginUpdate; {listv:listview名}

  try

  tlistview(listv).Items.Clear;

  with table do {table or query名}

  begin

  active:=true;

  first;

  while not eof do

  begin

  listitem:=tlistview(listv).Items.add;

  listitem.Caption:=trim(table.fields[i].asstring);

  // listitem.ImageIndex:=8;

  next;

  end;

  end;

  finally

  tlistview(listv).Items.EndUpdate;

  end;

  end;

本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2007-2013 中华考试网(Examw.com) All Rights Reserved