文档章节

学用 TStringGrid [3] - Cols、Rows

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 245
阅读 8
收藏 0
点赞 0
评论 0
须知: TStringGrid 的每行、每列都是一个 TStrings 对象.

本例功能:
1、分别按列与行修改;
2、分别按列与行读取

运行效果图:


//本例代码:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Grids;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{按列赋值}
procedure TForm1.Button1Click(Sender: TObject);
var
  List: TStrings;
begin
  List := TStringList.Create;
  List.CommaText := 'aaa,bbb,ccc,ddd';
  StringGrid1.Cols[0] := List;
  StringGrid1.Cols[1] := List;
  List.Free;
  (Sender as TButton).Caption := '按列赋值';
end;

{按行赋值}
procedure TForm1.Button2Click(Sender: TObject);
var
  List: TStrings;
begin
  List := TStringList.Create;
  List.CommaText := '111,222,333,444';
  StringGrid1.Rows[0] := List;
  StringGrid1.Rows[1] := List;
  List.Free;
  (Sender as TButton).Caption := '按行赋值';
end;

{按列取值}
procedure TForm1.Button3Click(Sender: TObject);
var
  List: TStrings;
begin
  List := StringGrid1.Cols[StringGrid1.Col]; {当前列}
  ShowMessage(List.Text);
  (Sender as TButton).Caption := '按列取值';
end;

{按行取值}
procedure TForm1.Button4Click(Sender: TObject);
var
  List: TStrings;
begin
  List := StringGrid1.Rows[StringGrid1.Row]; {当前行}
  ShowMessage(List.Text);
  (Sender as TButton).Caption := '按行取值';
end;

end.

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/03/05/1091588.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
jxl操作excel(每页200个,每行4个)

package cn.com.burgeon.excel; import java.io.File; import java.io.IOException; import jxl.Workbook; import jxl.format.Alignment; import jxl.format.Border; import jxl.format.Bord......

Maybe. ⋅ 2013/01/22 ⋅ 0

OpenCV学习(23) 使用kmeans算法实现图像分割

本章我们用kmeans算法实现一个简单图像的分割。如下面的图像,我们知道图像分3个簇,背景、白色的任务,红色的丝带以及帽子。 Mat img = cv::imread("../kmeans.jpg"); namedWindow("image"...

迈克老狼1 ⋅ 2013/10/23 ⋅ 0

mwArray

在vc中调用MATLAB产生的组建时,需要将vc中的参数转换成mwArray格式。 对mwArray赋值,主要包括矩阵赋值和字符串赋值。 一.矩阵赋值 <1>mwArray 定义矩阵变量 mwArray A(rows, cols, type) ...

曾劲松 ⋅ 2016/08/10 ⋅ 0

剑指Offer(java版)-8皇后问题

题目:在8*8的国际象棋上摆放8个皇后,使其不能相互攻击,及任意两个皇后不得处于同一行,同一列或者同意对角线上,请问总共有多少种符合条件的摆法。 思路一: 由于八个皇后的任意两个不能处...

一贱书生 ⋅ 2016/07/28 ⋅ 0

用深度学习keras的cnn做图像识别分类,准确率达97%

  Keras是一个简约,高度模块化的神经网络库。   可以很容易和快速实现原型(通过总模块化,极简主义,和可扩展性) 同时支持卷积网络(vision)和复发性的网络(序列数据)。以及两者的...

酷客创意网 ⋅ 2017/12/20 ⋅ 0

error: no match for 'operator<<' in 'std::cout << SparseMatrix::Add(SparseMatrix&)(((SparseMatrix&)(&B)))'

include using namespace std; const int DefaultSize=100; struct Triple { int row,col; int value; }; class SparseMatrix { friend ostream& operator << (ostream& out,SparseMatrix& M......

jay603 ⋅ 2012/12/12 ⋅ 1

大家来看看,我自己封装的opencv的求矩阵正弦的函数,调用前究竟要不要申请内存?

我自己封装的对矩阵的每个元素求三角sin的函数,如下: CvMat cvSinMat(CvMat a) { int rows = a->rows; int cols = a->cols; CvMat *out = cvCreateMat(rows, cols, a->type); for(int i=0......

天蚕变 ⋅ 2012/06/23 ⋅ 6

框架窗口的尺寸设置

将窗口分割为几块,横向分用ROWS属性,纵向分用COLS属性,每一块的大小可以由这两个属性的值来实现。 例: 例: #的值为一对用引号括起来的字符串,字符串中的数字表示每个分窗口所占的尺寸,...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

C语言二级指针问题(困扰了2天)

include "stdafx.h" define ROWS 10 define COLS 8 int count = 0; void process_array(int **array){ int i, j; for(i = 0; i < ROWS ; i ++){ for(j = 0; j< COLS; j ++){ (((array) + i) ......

爱上绝对路径 ⋅ 2012/09/26 ⋅ 12

为什么我的线条画不出来?(代码如下)

我想画一个网格 但是怎么显示不出来? import java.awt.BorderLayout; import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics; import javax.swing.JFrame; import jav......

小冷不冷 ⋅ 2012/05/13 ⋅ 3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

对于程序员的招聘问题,作为软件人的一些吐槽和建议

作为软件人,找工作有时候似乎挺苦逼的。 说真的,让我去掉前面这句中“似乎”二字吧。就是苦逼!很多人都曾抱怨处在招聘的一方很糟糕——我们没有任何可靠的方式来甄别会写代码并且写得好的...

老道士 ⋅ 35分钟前 ⋅ 0

HDFS原理学习

一、概述 1、 Hadoop整合了众多的文件系统,首先提供了一个高层的文件系统抽象org.apache.hadoop.fs.FileSystem。然后有各个文件系统的实现类。 2、Hadoop是JAVA编写的,不同文件系统之间的交...

cjxcloud ⋅ 39分钟前 ⋅ 0

Linux下MySQL表名不区分大小写的设置方法(抄袭别人的)

Linux下MySQL表名不区分大小写的设置方法 MySQL表名不区分大小写的设置方法 在用centox安装mysql后,把项目的数据库移植了过去,发现一些表的数据查不到,排查了一下问题,最后发现是表名的大...

随风而浮沉 ⋅ 44分钟前 ⋅ 0

ubuntu下安装宋体simsun

sudo cp simsun.ttc /usr/share/fonts cd /usr/share/fonts sudo chmod 644 simsun.ttc 更新字体缓存: 代码: sudo mkfontscale 代码: sudo mkfontdir 代码: sudo fc-cache -fsv 安装chrome扩......

wangxuwei ⋅ 45分钟前 ⋅ 0

利用 ssh 传输文件

Linux 下一般可以用 scp 命令通过 ssh 传送文件: #把服务器上的 /home/user/a.txt 发送到本机的 /var/www/local_dir 目录下scp username@servername:/home/user/a.txt /var/www/local_dir...

大灰狼时间 ⋅ 56分钟前 ⋅ 0

web3j教程:android和java程序员如何使用web3j开发区块链以太坊

如何使用web3j为Java应用或Android App增加以太坊区块链支持,本教程内容即涉及以太坊中的核心概念,例如账户管理包括账户的创建、钱包创建、交易转账,交易与状态、智能合约开发与交互、过滤...

智能合约 ⋅ 今天 ⋅ 0

web3j开发java或android以太坊智能合约快速入门

web3j简介 web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。 可以通过它进行以太坊区块链...

笔阁 ⋅ 今天 ⋅ 0

一起读书《深入浅出nodejs》-异步I/O

异步I/O “异步”这个名词其实很早就诞生了,但它大规模流行却是在Web 2.0浪潮中,它伴随着AJAX的第一个A(Asynchronous)席卷了Web。 为什么要异步I/O 关于异步I/O为何在Node里如此重要,这与...

小草先森 ⋅ 今天 ⋅ 0

JVM各种问题

1、如果启动什么都不设,会怎样? 先来看一个命令 [root@localhost bin]# java -XX:+PrintCommandLineFlags -version -XX:InitialHeapSize=29899008 -XX:MaxHeapSize=478384128 -XX:+PrintCo......

算法之名 ⋅ 今天 ⋅ 0

SAS笔记-宏2

宏是一种文本,一般来说其编译是在程序执行之前。 宏变量的创建 %let语句 %let macro_variables = text; %let是常见的宏变量建立方式,其编译就在执行前。如下例中,想要宏变量test等于数据集...

tonorth123 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部