zoukankan      html  css  js  c++  java
  • Listview_简单使用_(Virtual)

    1、代码来自于“C:Program Files (x86)BorlandDelphi7DemosVirtual 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 <> 0) then
      begin
        for i:=0 to (Flist.Count-1) do
          FreeMem(Flist.Items[i], SizeOf(Rmsg));
        Flist.Clear;
      end;
    
      for i:=0 to 5 do
      begin
        GetMem(p, SizeOf(Rmsg));
        p.Fi1 := i;
        p.Fi2 := 10 + i;
        p.Fi3 := 20 + 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 <> 0) then
      begin
        for i:=0 to (Flist.Count-1) do
          FreeMem(Flist.Items[i], SizeOf(Rmsg));
        Flist.Clear;
      end;
    
      for i:=0 to 50 do
      begin
        GetMem(p, SizeOf(Rmsg));
        p.Fi1 := 100 + i;
        p.Fi2 := 200 + i;
        p.Fi3 := 300 + i;
        Flist.Add(p);
      end;
      ListView1.Items.Count := Flist.Count;
      ListView1.Repaint;
    end;
    
    end.

    5、运行情况:

      5.1、

      5.2、

    6、

    7、

    8、

  • 相关阅读:
    前言
    npm安装全局模块之后项目提示找不到的解决
    mybatisPlus自动填充功能
    springMvc跨域的问题
    mybatisPlus逻辑删除
    java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
    Maven 打包指定名称
    Host is not allowed to connect to this MySQL server
    MySQL 8.0 Public Key Retrieval is not allowed
    SpringBoot1.5 项目启动报错 (jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in module java.base of loader 'bootstrap')
  • 原文地址:https://www.cnblogs.com/CodeSkill/p/6134178.html
Copyright © 2011-2022 走看看