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 ...
随机推荐
- 解决"django-registration(1048,“column”last_login“不能为null”)
去数据库(MySQL终端): 1.查看django_migrations表的信息.如果你看到一些记录,删除它们(如果migrations目录下有原来的配置,需要清除). mysql> SELEC ...
- 史上最易懂的大数据 OTO
史上最易懂的大数据 OTO http://network.51cto.com/art/201503/467068.htm 终于有人把O2O.C2C.B2B.B2C的区别讲透了 http://tech. ...
- [luogu4234]最小差值生成树
[luogu4234]最小差值生成树 luogu 从小到大枚举边,并连接,如果已连通就删掉路径上最小边 lct维护 \(ans=min(E_{max}-E_{min})\) #include<b ...
- CNI bridge 插件实现代码分析
对于每个CNI 插件在执行函数cmdAdd之前的操作是完全一样的,即从环境变量和标准输入内读取配置.这在http://www.cnblogs.com/YaoDD/p/6410725.html这篇博文里 ...
- git 遇到的问题
1.error: RPC failed; curl transfer closed with outstanding read data remaining 解决办法: git clone https ...
- Redis七(发布订阅)
发布与订阅(pub/sub) 介绍 Redis 通过 PUBLISH . SUBSCRIBE 等命令实现了订阅与发布模式, 这个功能提供两种信息机制, 分别是订阅/发布到频道和订阅/发布到模式 订阅者 ...
- Redis持久化方式RDB和AOF
Redis 持久化 RDB(快照) 优点 rdb是可进行压缩的二进制文件,表示Redis在某一个时间点的数据快照.非常使用与备份,灾难恢复等场景.比如使用定时任务执行bgsave并备份rdb到serv ...
- Python Parameter Passing Note
我刚刚开始学习Python, Python中的参数传递总是让我很困惑.我写了4个简单的Demo,帮助我理解Python的参数传递,希望对大家都能有所帮助. 0: def change(x): x = ...
- C# 建立UDP服务器并接收客户端数据
C# 建立UDP服务器并接收客户端数据 2015-02-11 17:20 1218人阅读 评论(0) 收藏 举报 分类: C#开发技术(22) 版权声明:本文为博主原创文章,未经博主允许不得转载. ...
- oracle ORA-01704: string literal too long
导出数据时,在SQL拼接处,提示 oracle ORA-01704: string literal too long sql: WITH already_in AS (SELECT distinct ...