Listview_简单使用_(Virtual)
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)的更多相关文章
- pytho简单爬虫_模拟登陆西电流量查询_实现一键查询自己的校园网流量
闲来无事,由于校园内网络是限流量的,查询流量很是频繁,于是萌生了写一个本地脚本进行一键查询自己的剩余流量. 整个部分可以分为三个过程进行: 对登陆时http协议进行分析 利用python进行相关的模拟 ...
- Java使用poi对Execl简单操作_总结
poi是Apache组织给开发者提供一套操作office(Execl,Word,PowerPoint)等Java API,开发者通过Poi API可以快速的操作office办公软件,以上3篇博文只是一 ...
- centos 6.5 下 nginx 简单优化_虚拟主机_负载均衡
# 用了nginx for win很久,安装也是超级简单.# 还是用一下linux版的吧.环境是centos 6.5 x64 # 安装开始: # 先安装依赖 yum install gcc-c++ y ...
- 3_Jsp标签_简单标签_防盗链和转义标签的实现
一概念 1防盗链 在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示从哪儿链接到当前的网页或文件,通过referer,网站可以检测目标网页访问的来源网页.有了referer跟踪来 ...
- QT_4_QpushButton的简单使用_对象树
QpushButton的简单使用 1.1 按钮的创建 QPushButton *btn = new QPushButton; 1.2 btn -> setParent(this);设置父窗口 1 ...
- SignalR简单实用_转自:https://www.cnblogs.com/humble/p/3851205.html
一.指定通信方式 建立一个通讯方式需要一定的时间和客户机/服务器资源.如果客户机的功能是已知的,那么通信方式在客户端连接开始的时候就可以指定.下面的代码片段演示了使用AJAX长轮询方式来启动一个连接, ...
- iOS_10_tableView的简单使用_红楼十二钗
终于效果图: 方式1,用字典数组 BeyondViewController.h // // BeyondViewController.h // 10_tableView // // Created b ...
- JSON的简单使用_向前台发送JSON数据
转自:http://www.cnblogs.com/digdeep/p/5574366.html 1.前台页面 <%@ page language="java" conten ...
- JSON的简单使用_解析前台传来的JSON数据
package cn.rocker.json; import org.junit.Test; import net.sf.json.JSONArray; import net.sf.json.JSON ...
随机推荐
- Taylor series
w用有限来表达无限,由已知到未知,化未知为已知. https://en.wikipedia.org/wiki/Taylor_series The Greek philosopher Zeno cons ...
- font-size引起的页面晃动
如下图中的场景,页面分为头和内容两个大块,head高度是50PX,1PX的border,中间的内容是iframe,高度需要每次进行计算,如下 <script>$(function(){ s ...
- MySQL 如何利用一条语句实现类似于if-else条件语句的判断
一. 编写一条update语句实现商品涨价,具体规则如下 1.99元以内,提价20% 2.100-999元之间,提价10% 3.1000-1999之间,提价5% 4.其他提价2% update goo ...
- 白话Redis分布式锁
redis分布式 简单来说就是,操作redis实例时,不是常规(单机)操作一个实例,而是操作两台或多台,也就是基于分布式集群: 而且redis内部是单进程.单线程,是数据安全的(只有自己的线程在操作数 ...
- rest_framake之视图
开始,先放大招 一 最原始的写法 前戏之序列化 class AuthorSerializer(serializers.ModelSerializer): class Meta: model = mo ...
- 前端 CSS 边框
border 边框 solid 实体的 red 边框什么颜色 <!DOCTYPE html> <html lang="en"> <head> & ...
- HDU1838:Chessboard(线性dp)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1838 这题也挺不错的.首先题目说了,棋盘的右下角一定是'1',另外棋盘里面至少包含一个1,所以最小值是1, ...
- mysql中解决主键自增长断号问题
情况一:如果表中本来已经存在数据,并且有断号的现象.那先得删除主键再添加,重新设置自增长. 1.ALTER TABLE student DROP id; 2.ALTER TABLE student A ...
- Linux定时器 使用
1.alarm alarm()执行后,进程将继续执行,在后期(alarm以后)的执行过程中将会在seconds秒后收到信号SIGALRM并执行其处理函数. #include <stdio.h&g ...
- 关于delphi软件运行出现Invalid floating point operation的错误的解决办法
关于delphi软件运行出现Invalid floating point operation的错误的解决办法 关于delphi软件运行出现Invalid floating point operat ...