首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Delphi语言中创建TStringGrid类,其中与单元格关联的对象数组被指定为更具体的类型

TStringGrid是Delphi中用于显示二维表格数据的控件。在TStringGrid中,可以通过指定单元格的行列索引来访问和操作单元格的数据。与单元格关联的对象数组可以使用更具体的类型来指定,这样可以在单元格中存储和操作更丰富的数据。

在Delphi中,可以通过以下步骤来创建一个TStringGrid并指定与单元格关联的对象数组的具体类型:

  1. 打开Delphi开发环境并创建一个新的VCL应用程序项目。
  2. 在主窗体上放置一个TStringGrid控件。可以通过在工具箱中拖拽TStringGrid控件到窗体上或者在代码中手动创建该控件。
  3. 打开窗体的设计视图,在属性窗口中找到TStringGrid控件的Options属性。
  4. 在Options属性中,将goEditing选项设置为False,以禁止直接在单元格中编辑文本数据。
  5. 在代码中,可以使用泛型集合类(如TList<T>)或自定义的类来指定与单元格关联的对象数组的类型。例如,可以创建一个名为TCellData的类来存储单元格中的数据。

以下是一个示例代码:

代码语言:txt
复制
type
  TCellData = class
    // 自定义的与单元格关联的数据类型
    // 可以在这里添加成员变量来存储单元格中的数据
  end;

procedure TForm1.FormCreate(Sender: TObject);
var
  Grid: TStringGrid;
  CellDataArray: array of TCellData;
begin
  Grid := TStringGrid.Create(Self);
  Grid.Parent := Self;
  
  // 设置TStringGrid属性
  
  SetLength(CellDataArray, Grid.ColCount, Grid.RowCount);
  
  // 使用CellDataArray来存储与单元格关联的数据
  
  // 其他操作...
end;

在上述示例代码中,我们创建了一个名为TCellData的自定义类来存储与单元格关联的数据。通过使用CellDataArray数组,我们可以按行列索引来访问和操作不同单元格中的数据。根据具体的需求,可以在TCellData类中添加适当的成员变量来存储单元格中的数据。

对于TStringGrid中与单元格关联的对象数组的具体类型,可以根据具体的业务需求和数据类型选择合适的类型。例如,如果单元格中需要存储字符串数据,可以使用TStringList;如果需要存储复杂的自定义数据,可以使用自定义的类来指定对象数组的类型。

对于TStringGrid的更多详细信息和使用方法,可以参考腾讯云提供的Delphi开发文档:

TStringGrid类 - Delphi开发文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Delphi类型和引用

我们可以初步把它理解为一个指向输出该方法对象实例指针。举例说明,我们Delphi可视环境下 建立一个表单窗口时,它实际上是创建了一个从TForm中继承下类型。...如果仔细看Delphi为您生成 代码,你可以完全看到上面的各个规则是如何实现。同时,当我们表单上布置各种控件时,也是 增加这个类型特殊成员和方法等。...十:方法 Object pascal中还有一种称为方法特殊方法,方法跟构造有些相似,其相似之处在于它们 都能由来引用,而不必先创建一个对象实例,也就是说方法不依赖于任何具体实例。...其中小集合 类型集合类型上下界序号0到15之间集合。...Private Private部分声明成员是私有的,它们只能同一个方法访问,相当于C语言中内部变 量,对于其它包括它派生,Private部分声明成员是不可见,这就是面向对象编程数据保护

2.5K30

【Rust笔记】意译解构 Object Safety for trait

trait对象安全核心原则 【专用多态】抽象要求trait将其具体实现以【动态大小类型DST】?Sized形式呈现给trait method调用端。...】隐式类型参数Self必须显式地限定为Sized 例程6。...书面代码上,@Rustacean 仅需要做到trait method定义中, 不出现【泛型类型参数】 例程8。例外,【泛型生命周期参数】还是允许。...例程9 非self形参与返回值类型不能是Self。关键字Self代trait实现,但Object safe trait需要对实现不知。...谁认知不是逐步深化呀),也别慌,别像我一样傻乎乎地立即重构代码(很伤)。而仅只需要将仅能静态分派关联函数隐式类型参数Self限定为Sized即可。

19730
  • delphi vcl_delphi数据类型

    GDI一个具体组件没有联系,但很多都有这些属性实例。例如,编辑控件有一个属性叫Font,它是TFont实例。...除了这里列出GDI以外,还有一些其他以后Delphi学习过程中,我们将会学习到更多有关这方面的,并掌握使用它们。...TStringList可以表示字符串数组,TStringList可以很多用来存储字符串,例如,TMemoLines属性就是一个TStringList对象,通过用LoadFromFile和SaveToFile...另一个VCL实用就是TList,这个可以建立任何想要类型对象数组。...TList可以存储指针清单,TList主要优点就是它提供了一种方法,这种方法可以使数组随着增加和删除对象,动态地扩大或缩小。

    2.7K10

    JavaScript导出excel文件,并修改文件样式

    Cell Object Cell Object 单元格对象,格式为 {c:C, r:R},其中 C 代表列号,R 代表行号。 例如单元格 B5 用对象表示就是 {c:1, r:4}。...单元格范围用对象表示为{s:S, e:E},其中 S 表示第一个单元格对象,E 表示最后一个单元格对象。...numFmt 样式属性 numFmt 作用是对数字类型单元格进行格式化。 xlsx-style 中内置一个 table_fmt 对象,这个对象存储了一些进行格式化规则。...readingOrder 样式属性 alignment 子属性 readingOrder 表示单元格文字方向。语言阅读书写顺序并不都是从左到右,比如阿拉伯就是从右到左。...and SST Props: Props 可以设置为一个对象,存入以下工作簿相关信息: 属性名 描述 "title" 标题 "subject" 主题 "creator" 创建者 "keywords

    5.6K30

    设计模式实战 - 解释器模式(Interpreter Pattern)

    运算元素和运算符号 运算元素 a、b、c等符号,需要具体赋值对象,也叫做终结符号,为什么叫终结符号呢?...例如这个公式:a+b-c,根据for循环,首先压入栈中应该是有a元素生成VarExpression对象,然后判断到加号时,把a元素对象VarExpression从栈中弹出,右边数组b进行相加...当前数组游标下移一个单元格即可,同时为了防止该元素再次遍历,则通过++i方式跳过下一个遍历——于是一个加法运行结束。减法也采用相同运行原理。...(给定一门语言,定义它文法一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子。) 一种按照规定语法进行解析方案,现在项目中使用较少 ? ?...完成 ● TerminalExpression——终结符表达式 实现文法中元素相关联解释操作,通常一个解释器模式中只有一个终结符表达式,但有多个实例,对应不同终结符 具体到我们例子就是VarExpression

    92420

    编程语言出现都这么随意吗?

    随着 Fortran 诞生,其他一些语言也开发中,这些语言语法格式各不相同,而且和 Fortran 一样,都与运行它们具体计算机关联(比如标示符长度、代码行数限制等)。...Algol 60,发表于 1960 年, Algol 58 基础上做了重大改进:移入块结构、 支持两种子程序参数传递(按值传递和按名传递)、允许递归、支持本地数组栈上分配数组)。...SIMULA 67 是对 Algol 60 扩展,是第一个定义结构语言,这也认为是面向对象起源。...Smalltalk 源于 SIMUAL 67,完善并定义了消息发送,和对象继承关系。 Smalltalk 中,所有数据都是对象:消息发送者,消息接受者,消息,消息结果…。对象类型。... Self 中对象创建对象方式是自我拷贝,所以叫做原型。 Self 是原型面向对象语言鼻祖,就像 SIMUAL 67 是面向对象鼻祖。 A.20.

    1.6K60

    【Java SE语法篇】6.数组

    = new int[10]; 动态初始化:创建数组是不直接指定数据元素个数,而直接讲具体数据内容进行指定 语法格式: T[] 数组名 = {data1,data2,....data}; int[]...在有些版本 JVM 实现中,本地方法栈和虚拟机栈是一起 堆:JVM 所管理最大内存区域,使用**new创建对象都是堆上保存,堆是随着程序开始运行时而创建,随着程序结束而销毁,堆中数据只要还有使用...2.2 基本类型变量引用类型变量区别 基本数据类型变量,称为基本变量,该变量空间中直接存放是其所对应值; 而引用数据类型创建变量,一般称为对象引用,其空间中存储对象所在空间地址 public...上图可以看出,引用变量并不直接存储对象本生,可以简单理解成存储对象堆中空间起始地址。通过该地址,引用变量便可以去操作对象。有点类似C语言中指针,但是 Java 中引用要比指针操作简单。...因为数组是引用类型,按照引用类型进行传递,是可以修改其中存放内容。 【总结】:所谓“引用”本质只是存了地址。

    8810

    干货 | 学编程一定要掌握186个关键单词及作用!

    79实例(instance of a class): 归属于(或者该类型子类)对象。 当用作对象模板时,对象构造函数创建对象归属于这个。...这种数据结构将一组(Collection)中某个对象摸个集合(Set)中所有对象关联在一起。 Java中,map 由泛型接口 Map 表示。...173super: 一个特殊变量,实例方法中自动定义。 super包含该方法对象,归属于方法所在。 super可以访问父中被隐藏成员变量,这些变量子类中成员变量同名。...79实例(instance of a class): 归属于(或者该类型子类)对象。 当用作对象模板时,对象构造函数创建对象归属于这个。...这种数据结构将一组(Collection)中某个对象摸个集合(Set)中所有对象关联在一起。 Java中,map 由泛型接口 Map 表示。

    1.2K90

    Java安全基础(四)Java反射机制

    二、反射用途 静态语言中,一般对象类型都是在编译期就确定下来,二通过Java反射机制,可以动态创建对象并调用其方法或属性,这也就使得反射用途很广泛,开发过程中使用Eclipse、IDEA...如C++、Java、Delphi、C#等。 动态语言(弱类型语言):动态语言时在运行是确定数据类型语言。变量使用之前不需要类型声明,通常变量类型赋值那个值类型。...可以程序运行时改变程序结构和变量类型语言,比如在程序运行时,新对象可以加载和创建,新函数或方法可以加入或者去除等等。 3.1、动态特性 动态语言具有的某些特性即为动态特性。...应用程序无法创建自己此类实例。 该类主要方法是:getRuntime(),得到一个和当前程序相关联Runtime对象,解释如下: 返回当前Java应用关联runtime对象。...5.3、获取对象-getClass() 我们可以通过ObjectgetClass()方法来获取字节码对象,不过这种方式较为繁琐,必须要明确具体,然后创建对象

    76220

    vcl啥意思_oval

    TCustomGrid.Paint中,主要实现两个功能:绘制网格线和填充网格数据。其中,网 格数据填充具体实现由下述DrawCell完成。在后面的内容,我会结合源代码详细解释Paint。...比如它覆盖了TCustomGrid.DrawCell,并在其中触发了OnDrawCell事件。因此,我们OnDrawCell中添加代码,就可以改变特定行列网格中 数据及其填充方式。...都是用户可以设计时使用,或者简单说都是控件。...DrawCell是一个纯虚方法,Paint中被调用(具体过程参见下文),因此理解重点是两个地方: (1)Paint有什么用,Paint是如何运作。 (2)Paint中做了什么工作。...最终引起Paint执行。} end; 2、Paint所做工作。先看看我简化后源代码,容易说清楚。

    85330

    JavaScript如何工作:内存管理+如何处理4个常见内存泄漏

    分配内存操作一样,这一操作低级语言中也是需要显式地执行。 内存是什么? 介绍JavaScript中内存之前,我们将简要讨论内存是什么以及它是如何工作。...你代码不应该依赖于当前基本数据类型大小。 编译器将插入操作系统交互代码,并申请存储变量所需堆栈字节数。 在上面的例子中,编译器知道每个变量的确切内存地址。...事实上,每当我们写入变量 n 时,它就会在内部转换成类似“内存地址4127963”这样信息。 注意,如果我们尝试访问 x[4],将访问m关联数据。...foo(); 可以JavaScript文件开头通过添加“use strict”来避免这一切,它将开启一个严格JavaScript解析模式,以防止意外创建全局变量。...然而,事实并非如此,由于单元格是表一个子节点,而子节点保存对父节点引用,所以对表单元格这个引用将使整个表保持在内存中,所以移除有引用节点时候要移除其子节点。

    1K40

    R语言入门

    R语言中基本数据类型(模式)包括数值型、字符型、逻辑型(TRUE/FALSE)、复数型(虚数)和原生型(字节)。 R拥有许多用于存储数据对象类型,包括标量、向量、矩阵、数组、数据框和列表。...它们存储数据类型创建方式、结构复杂度,以及用于定位和访问其中个别元素标记等方面均有所不同。 我们接下来将逐个介绍这些数据结构。...X[i,]矩阵X中第i行, X[,j]第j列, X[i, j]第i行第j 个元素。选择多行或多列时,下标i和j可为数值型向量。 3 数组 数组(array)矩阵类似,但是维度可以大于2。...类别(名义型)变量和有序类别(有序型)变量R中称为因子(factor)。类似于编程语言中枚举类型。...列表允许整合若干(可能无关对象到单个对象名下。类似于编程语言中或是结构体。某个列表中可能是若干向量、矩阵、数据框,甚至其他列表组合。

    2.1K30

    --04:数据类型

    高级语言中则总是关联值与其类型,需要这种关联一些原因和用途就如前面说到上下文信息和错误检测。...泛型对于容器(集合)类型特别有用,如T列表( List )和T栈( Stack )等,其中T只是一个类型占位符,初始化这个容器对象时提供具体类型来代替它。...一些对变量采用引用模型言中,很容易创建这种递归类型,因为每个变量都是引用;一些对变量采用值模型言中,定义递归类型就需要使用指针概念,指针就是一种变量,其值是对其他对象引用。...一些语言中,指针严格限制为只能指向堆里对象,而创建指针方式只有一种,那就是调用一个内部功能,堆中分配一个新对象并返回指向它地址。...因为由于指针和对象都可能作为子程序参数传递,只有在所有引用参数都带有隐含生存周期信息情况下,才有可能动态去执行这种规则检查。

    1K60

    TIOBE 10 月榜单发布:Java危?

    自此以后,这 10 个月来 Java TIOBE 编程语言榜单排名再也没上过前三, C++ 之间差距也日益扩大。...从市场份额来看,Java Top 20 编程语言中降幅最大,为 3.92%;反观 C# 涨幅高达 3.29%,彼此仅相差 1.2% —— 按照 TIOBE 官方说法:“C# 和 Java 之间差距从未如此之小...2000 年,微软发布由 C 和 C++ 衍生出来面向对象编程语言 C#,也是运行于 .NET Framework 和 .NET Core(完全开源,跨平台)之上高级程序设计语言,由 Delphi...乍看之下,C# Java 惊人地相似:面向对象编程语言,有着几乎同样语法,都需要编译成中间代码再运行,都支持跨平台,都支持单一继承和多接口实现,都提供自动垃圾回收功能,都支持强引用和弱引用,此外异常处理方式也几乎相同...……不过,C# Java 之间区别也很明显:C# 借鉴了 Delphi 一个特点, COM(组件对象模型)直接集成,还支持创建数组时既定义数组大小又给数组赋值,同时支持使用预处理程序指令进行条件编译和

    30220

    PHP开发学习笔记(基础篇)

    类型转换 变量 常量 字符串 数组 宏定义 传值 运算符 流程控制 函数 数组数组结构 文件加载 错误处理 5.PHP基础项目写法 6.总结 ---- 学习体会 这篇文章大概大半个月前就应该发出来了...通过面向过程写法去了解PHP这门服务器脚本语言,然后带入对象概念,因为其版本原因,PHP5.1版本后才完全支持面向对象....heredoc nowdoc 转义字符 字符串长度 数组 概念 数组,是将若干数据按一定顺序组合为一个整体。...下标定义 整数下标 索引数组 关联数组(字典)(JSON对象) 数组维数 遍历数组 变量定义 define()函数形式 define(‘常量名’, 对应常量值); 常量名推荐使用“全大写”。...PHP开发学习笔记(基础篇)_1.png 数组数组结构 数组定义 数组分类 索引数组 关联数组 数组创建 字面量创建 array()函数声明 多维数组 数组遍历 for循环遍历 foreach

    2.3K50

    Java数组定义和使用

    ] array = new int[10]; 静态初始化:创建数组时不直接指定数据元素个数,而直接将具体数据内容进行指定 语法格式:T[] 数组名称={data1,data2,.....当创建数组时这个值就被确定了并且整个数组生命周期都不会改变;length()是String一个方法,用于返回字符串中字符数。...5.2基本类型变量引用类型变量区别 基本数据类型创建变量,称为基本变量,该变量空间中直接存放是其所对应值;而引用数据类型创建变量,一般称为对象引用,其空间中存储对象所在空间地址。...引用变量并不直接存储对象本身,可以简单理解成存储对象堆中空间起始地址。通过该地址,引用变量可以去操操作对象。这类似于C语言中指针,但是Java中引用要比指针操作简单。...多态性和扩展性:数组作为引用类型,可以容易地与其他引用类型(如对象)交互,并利用Java面向对象特性,如继承和多态。这使得数组可以容纳复杂数据结构,如自定义对象

    13410

    JavaScript内存管理机制以及四种常见内存泄漏解析

    代码中使用已分配过内存变量时,就会发生内存读写操作。 释放内存——释放所有不再使用内存,使之成为自由内存,并可以重利用。分配内存操作一样,这一操作低级语言中也是需要显式地执行。...你代码不应该依赖于当前基本数据类型大小。 编译器会插入操作系统交互代码,并同时栈上申请要存储变量所需字节数。 在上面这个例子中,编译器知道每个变量准确内存地址。...在下面的示例中,创建了两个对象,两个对象互相调用,从而创建了一个循环。函数调用之后将超出作用域,因此它们实际上是无用,可以释放。...如果你必须使用一个全局变量来存储大量数据,那么请确保将其指定为null,或者完成后将其重新赋值。 2. 遗忘定时器和回调 JavaScript中,setInterval使用很常见。...假设你JavaScript代码中有一个指向某个表(标记)特定单元格引用。有一天,你决定从DOM中删除这个表,但要保留对该单元格引用。人们可能会认为GC会收集所有的东西,除了单元格

    792100

    Java入门(6)-- 对象

    6.1.4 继承 之间同样具有关系,这种关系被称为关联关联主要描述两个之间一般二元关系,例如,一个百货公司销售员就是一个关联,学生教师也是一个关联。...多态机制中,父通常会被定义为抽象抽象中给出一个方法标准,而不给出实现具体流程,实质上这个方法也是抽象多态机制中,比抽象方便方法是将抽象定义为接口。...权限设定会约束成员权限设定。 3. this关键字 Java语言中规定使用this关键字来代表本类对象引用,this关键字隐式地用于引用对象成员变量和方法。...2)主方法没有返回值; 3)主方法形参为数组其中args[0]~args[n]分别代表程序第一个参数到第n个参数,可以使用args.length获取参数个数。...6.6 对象 6.6.1 对象创建 对象可以认为是事物中抽象出某一个特例,可以通过这个特例来处理这类事物出现问题。Java语言中使用new操作符调用构造方法创建对象

    43120

    【机器学习 | 假设检验系列】假设检验系列—卡方检验(详细案例,数学公式原理推导),最常被忽视得假设检验确定不来看看?

    通常情况下,我们选择一个显著性水平(例如0.05),如果计算得到的卡方统计量大于对应自由度和显著性水平临界值,就拒绝原假设,认为观察到频数期望频数之间存在显著差异,即变量之间存在关联或独立性拒绝...需要注意是,期望频数是原假设下计算,假设变量A和变量B是独立。如果观测频数期望频数之间存在显著差异,那么我们将拒绝原假设,认为变量A和变量B之间存在显著关联。...考虑到这些限制条件,我们可以自由选择单元格个数为 (r-1) × (c-1)。这是因为,一旦我们选择了其中一个单元格观测频数,改行列其他单元格观测频数将根据限制条件固定。...实际应用中,通常使用软件包(如PythonSciPy库或R语言中stats包)来计算 p 值。...我们随机选择了100个男性和100个女性,并记录了他们对三种类型电影喜好(A、B和C)。

    1.7K10
    领券