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)

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls; type
TForm1 = class(TForm)
ListView1: TListView;
btnListViewTest01: TButton;
btnListViewTest02: TButton;
procedure btnListViewTest01Click(Sender: TObject);
procedure ListView1Data(Sender: TObject; Item: TListItem);
procedure btnListViewTest02Click(Sender: TObject);
private
Flist :TList;
public
{ Public declarations }
end; Pmsg =^Rmsg;
Rmsg = record
Fi1 :integer;
Fi2 :integer;
Fi3 :integer;
end; var
Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ListView1Data(Sender: TObject; Item: TListItem);
var p :Pmsg;
begin
if ListView1.ViewStyle <> vsReport then Exit;
if (Item.Index >= Flist.Count) then Exit; p := Flist.Items[Item.Index];
Item.Caption := IntToStr(p.Fi1);
Item.SubItems.Add(IntToStr(p.Fi2));
Item.SubItems.Add(IntToStr(p.Fi3));
end; procedure TForm1.btnListViewTest01Click(Sender: TObject);
var i :Integer;
p :Pmsg;
begin
if not Assigned(Flist) then
Flist := TList.Create;
if (Flist.Count <> ) then
begin
for i:= to (Flist.Count-) do
FreeMem(Flist.Items[i], SizeOf(Rmsg));
Flist.Clear;
end; for i:= to do
begin
GetMem(p, SizeOf(Rmsg));
p.Fi1 := i;
p.Fi2 := + i;
p.Fi3 := + i;
Flist.Add(p);
end;
ListView1.Items.Count := Flist.Count;
ListView1.Repaint;
end; procedure TForm1.btnListViewTest02Click(Sender: TObject);
var i :Integer;
p :Pmsg;
begin
if not Assigned(Flist) then
Flist := TList.Create;
if (Flist.Count <> ) then
begin
for i:= to (Flist.Count-) do
FreeMem(Flist.Items[i], SizeOf(Rmsg));
Flist.Clear;
end; for i:= to do
begin
GetMem(p, SizeOf(Rmsg));
p.Fi1 := + i;
p.Fi2 := + i;
p.Fi3 := + i;
Flist.Add(p);
end;
ListView1.Items.Count := Flist.Count;
ListView1.Repaint;
end; 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. JS中:数组和二维数组、MAP、Set和枚举的使用

    1.数组和二维数组:   方法一: var names = ['Michael', 'Bob', 'Tracy']; names[0];// 'Michael' 方法二: var mycars=new ...

  2. druid

    实时分析型数据库 Druid | Interactive Analytics at Scale http://druid.io/ Druid is primarily used to store, q ...

  3. <2014 05 14> Android平台下2D/3D开发攻略

    Android通过OpenGL包含了对高性能2D和3D图形的支持,尤其支持OpenGLES API.OpenGL是一个跨平台的图形API,提供了软件操作3D图形硬件的接口.OpenGLES是一个专用于 ...

  4. ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry ’1′ for key

    当我用SQLyog尝试修改已有记录的mysql数据表的主键为自动增长时,报出以下错误 ALTER TABLE causes auto_increment resequencing, resulting ...

  5. Spring 框架的 applicationContext.xml 配置文件

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  6. Java 语言基础之数组应用

    什么时候使用数组呢? 如果数据出现了对应关系, 而且对应关系的一方是有序的数字编号, 并作为角标使用. 这时,就必须要想到数组的使用. 也就是将这些数据存储到数组中, 根据运算的结果作为角标, 直接去 ...

  7. Angular4中常用管道(转载)

    Angular4中常用管道 通常我们需要使用管道实现对数据的格式化,Angular4中的管道和之前有了一些变化,下面说一些常用的管道. 一.大小写转换管道 uppercase将字符串转换为大写 low ...

  8. Myeclipse中文乱码解决方式

    我们刚刚安装的Myeclipse有可能使用的是GBK的编码方式,而通常我们的程序都是使用的是UTF-8的编码方式,所以当我们导入一个项目的时候,会产生乱码,解决方式如下: 一.将整个project设置 ...

  9. go——标准命令

    Go本身包含大量用户处理Go程序的命令和工具. 1.子命令 go命令的子命令:build:用于编译指定的代码包或Go语言源码文件. 命令源码文件会被编译成可执行文件,并存放到命令执行的目录或指定目录下 ...

  10. Linux知识点总结