1、代码来自于“C:\Program Files (x86)\Borland\Delphi7\Demos\Virtual Listview”

  1.1、是使用 ListView来显示数据

  1.2、自己管理 ListView里面显示的信息(也就是说,不是像StringGrid那样一格一格内容往里面插入)

2、ListView 控件,属性设置:

  2.1、ViewStyle 设置为 vsReport

  2.2、OwnerData 设置为 true

  2.3、双击 ListView,添加 几个列

  2.4、GridLines 设置为 true

  2.5、RowSelect 设置为 true

  2.6、ReadOnly 设置为 true

3、测试程序界面:

4、测试代码:(Delphi7)

  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs, ComCtrls, StdCtrls;
  8.  
  9. type
  10. TForm1 = class(TForm)
  11. ListView1: TListView;
  12. btnListViewTest01: TButton;
  13. btnListViewTest02: TButton;
  14. procedure btnListViewTest01Click(Sender: TObject);
  15. procedure ListView1Data(Sender: TObject; Item: TListItem);
  16. procedure btnListViewTest02Click(Sender: TObject);
  17. private
  18. Flist :TList;
  19. public
  20. { Public declarations }
  21. end;
  22.  
  23. Pmsg =^Rmsg;
  24. Rmsg = record
  25. Fi1 :integer;
  26. Fi2 :integer;
  27. Fi3 :integer;
  28. end;
  29.  
  30. var
  31. Form1: TForm1;
  32.  
  33. implementation
  34.  
  35. {$R *.dfm}
  36.  
  37. procedure TForm1.ListView1Data(Sender: TObject; Item: TListItem);
  38. var p :Pmsg;
  39. begin
  40. if ListView1.ViewStyle <> vsReport then Exit;
  41. if (Item.Index >= Flist.Count) then Exit;
  42.  
  43. p := Flist.Items[Item.Index];
  44. Item.Caption := IntToStr(p.Fi1);
  45. Item.SubItems.Add(IntToStr(p.Fi2));
  46. Item.SubItems.Add(IntToStr(p.Fi3));
  47. end;
  48.  
  49. procedure TForm1.btnListViewTest01Click(Sender: TObject);
  50. var i :Integer;
  51. p :Pmsg;
  52. begin
  53. if not Assigned(Flist) then
  54. Flist := TList.Create;
  55. if (Flist.Count <> ) then
  56. begin
  57. for i:= to (Flist.Count-) do
  58. FreeMem(Flist.Items[i], SizeOf(Rmsg));
  59. Flist.Clear;
  60. end;
  61.  
  62. for i:= to do
  63. begin
  64. GetMem(p, SizeOf(Rmsg));
  65. p.Fi1 := i;
  66. p.Fi2 := + i;
  67. p.Fi3 := + i;
  68. Flist.Add(p);
  69. end;
  70. ListView1.Items.Count := Flist.Count;
  71. ListView1.Repaint;
  72. end;
  73.  
  74. procedure TForm1.btnListViewTest02Click(Sender: TObject);
  75. var i :Integer;
  76. p :Pmsg;
  77. begin
  78. if not Assigned(Flist) then
  79. Flist := TList.Create;
  80. if (Flist.Count <> ) then
  81. begin
  82. for i:= to (Flist.Count-) do
  83. FreeMem(Flist.Items[i], SizeOf(Rmsg));
  84. Flist.Clear;
  85. end;
  86.  
  87. for i:= to do
  88. begin
  89. GetMem(p, SizeOf(Rmsg));
  90. p.Fi1 := + i;
  91. p.Fi2 := + i;
  92. p.Fi3 := + i;
  93. Flist.Add(p);
  94. end;
  95. ListView1.Items.Count := Flist.Count;
  96. ListView1.Repaint;
  97. end;
  98.  
  99. end.

5、运行情况:

  5.1、

  5.2、

6、

7、

8、

Listview_简单使用_(Virtual)的更多相关文章

  1. pytho简单爬虫_模拟登陆西电流量查询_实现一键查询自己的校园网流量

    闲来无事,由于校园内网络是限流量的,查询流量很是频繁,于是萌生了写一个本地脚本进行一键查询自己的剩余流量. 整个部分可以分为三个过程进行: 对登陆时http协议进行分析 利用python进行相关的模拟 ...

  2. Java使用poi对Execl简单操作_总结

    poi是Apache组织给开发者提供一套操作office(Execl,Word,PowerPoint)等Java API,开发者通过Poi API可以快速的操作office办公软件,以上3篇博文只是一 ...

  3. centos 6.5 下 nginx 简单优化_虚拟主机_负载均衡

    # 用了nginx for win很久,安装也是超级简单.# 还是用一下linux版的吧.环境是centos 6.5 x64 # 安装开始: # 先安装依赖 yum install gcc-c++ y ...

  4. 3_Jsp标签_简单标签_防盗链和转义标签的实现

    一概念 1防盗链 在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示从哪儿链接到当前的网页或文件,通过referer,网站可以检测目标网页访问的来源网页.有了referer跟踪来 ...

  5. QT_4_QpushButton的简单使用_对象树

    QpushButton的简单使用 1.1 按钮的创建 QPushButton *btn = new QPushButton; 1.2 btn -> setParent(this);设置父窗口 1 ...

  6. SignalR简单实用_转自:https://www.cnblogs.com/humble/p/3851205.html

    一.指定通信方式 建立一个通讯方式需要一定的时间和客户机/服务器资源.如果客户机的功能是已知的,那么通信方式在客户端连接开始的时候就可以指定.下面的代码片段演示了使用AJAX长轮询方式来启动一个连接, ...

  7. iOS_10_tableView的简单使用_红楼十二钗

    终于效果图: 方式1,用字典数组 BeyondViewController.h // // BeyondViewController.h // 10_tableView // // Created b ...

  8. JSON的简单使用_向前台发送JSON数据

    转自:http://www.cnblogs.com/digdeep/p/5574366.html 1.前台页面 <%@ page language="java" conten ...

  9. JSON的简单使用_解析前台传来的JSON数据

    package cn.rocker.json; import org.junit.Test; import net.sf.json.JSONArray; import net.sf.json.JSON ...

随机推荐

  1. MySQL 1067

    今天在云服务器上装mysql的时候,启动突然报了一个“1067 进程意外终止”的错误,这个错误之前是遇到过的,之前因为my.ini配置basedir路径的时候没有正确配置导致了这个错误,但是今天又出现 ...

  2. Group By 与 Count

    select UserID,COUNT(0) From [Order] a Group By UserID UserID   (无列名)1             5     2            ...

  3. Java 集合框架之泛型

    JDK 1.5 以后出现的安全机制,提高了编译时期的安全性. 泛型出现的好处: 将运行时期的问题 ClassCastException 转到了编译时期 避免了强制转换的麻烦 泛型出现的原因: publ ...

  4. eclipse/IDEA使用maven

    下载,解压(无须安装),配置环境变量,命令行下mvn -v测试.https://www.cnblogs.com/luotaoyeah/p/3764533.html eclipse使用maven 为ec ...

  5. facebook 相似性搜索库 faiss

    faiss 个人理解: https://github.com/facebookresearch/faiss 上把代码clone下来,make编译 我们将CNN中经过若干个卷积/激励/池化层后得到的激活 ...

  6. Linux学习笔记(3)linux服务管理与启停

    一.LINUX 系统服务管理 1.RHEL/OEL 6.X及之前 service命令用于对系统服务进行管理,比如启动(start).停止(stop).重启(restart).查看状态(status)等 ...

  7. 安装SQL2012

    1. 优先安装软件 1. net framework3.5. 2. 在安装SQL SERVER 2012前需要3.5的支持.在WIN 2012系统可以在系统管理的添加角色和功能中安装,如下将[.NET ...

  8. Excel数据常用操作,vlookup,text,trim,数据格式导致出错

    数据有缺漏,需要在数据前面补零 =TEXT(F70,"000000") 前面是要操作的数据,后面是补几位 匹配数据(将一个表格中的数据进行匹配) =VLOOKUP(C2,aaa,4 ...

  9. SqlServer分页总结-摘抄

    sqlserver2008不支持关键字limit ,所以它的分页sql查询语句将不能用mysql的方式进行,幸好sqlserver2008提供了top,rownumber等关键字,这样就能通过这几个关 ...

  10. linux 查看tomcat 日志

    tomcat 重启: cd /opt/appserver/apache-tomcat-/bin ./shutdown.sh -ef|grep tomcat kill - ./startup.sh 查看 ...