Delphi XE8 Create结构体

Delphi xe8的结构体支持 Create ,但是不支持 free,挺棒的。

type
  TValuePair = record
    Name: string;
    Value: string;
    constructor Create(const AName, AValue: string);
  end;

implementation

{$R *.dfm}

constructor TValuePair.Create(const AName, AValue: string);
begin
  Name := AName;
  Value := AValue;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  m_ValuePair: TValuePair;
begin
  m_ValuePair := TValuePair.Create(‘姓名‘, ‘张三‘);
  Memo1.Lines.Add(m_ValuePair.Name + ‘  ---  ‘ + m_ValuePair.Value);
  //FreeAndNil( m_ValuePair ); //报错 ,不支持free
end;

时间: 2024-08-09 08:19:14

Delphi XE8 Create结构体的相关文章

Delphi - 数组和结构体

技术交流,DH讲解. 记得很早之前我就说过,数组和结构体在内存中其实一样的,他们都是连续分布的.例如: ? 1 2 3 4 TMyStruct = record   A,B,C:Integer; end; T3IntArray = array[0..2]of Integer; 这两个都占12字节,而且TMyStruct.A就是T3IntArray[0].而我们知道在访问数组中某个元素的时候,只是在第一个元素的地址 + 序号 * 元素大小.那么访问结构体应该也是这样的,只是结构体中每个元素的大小不

Delphi 10.2 JSON与对象/结构体序列化性能提高100多倍

今天在盒子闲逛,无意中看到有人说XE7自带的Json对象序列化很慢,帖子在这里:http://bbs.2ccc.com/topic.asp?topicid=464378;经过测试的确如此.     但是 D10.2后,自带的 Json 做了优化,性能大大的提高了100多倍. 和其他json库对比了序列化和反序列化性能,JsonDataObjects 性能最好,但是只支持简单的对象,不支持结构体,QJson 则不支持动态数组,不支持 Attributes (RTTI),比如需要过滤某个字段,自带和

使用Delphi声明C++带函数的结构体实战 good

在小组开发中,应用程序部分采用Delphi7,一些组件使用C++做.在今天将一个动态库的C++接口声明头文件转换为D7的Unit单元时,一切都很顺利,直到遇到下面这样一个另类的东西: typedef struct tagRecord{ int val; int getvalplus() {  val++;  return val; }}TRecord, *PRecord; 带函数的结构体!面对这个面目狰狞的家伙,我开始无所适从,狂在GOOGLE.BAIDU里通过关键字“Delphi 带函数的记录

Delphi调用API时到底应该是指针还是结构体?

看MSDN,GetWindowRect的说明如下: BOOL WINAPI GetWindowRect( _In_  HWND   hWnd, _Out_ LPRECT lpRect ); 但是实际调用直接传递结构体,而不是指针: procedure TWinControl.UpdateBounds; var ParentHandle: HWnd; Rect: TRect; WindowPlacement: TWindowPlacement; begin // 非最小化状态下,取得Win控件显示

Delphi结构体的扩展,可以自动初始化,反初始化,自定义拷贝函数.

转载:http://www.raysoftware.cn/?p=518&utm_source=tuicool 恭贺Delphi XE7诞生,Delphi XE7在编译器内部集成了我之前所实现的动态数组扩展.http://www.raysoftware.cn/?p=278现在有一个更悠久的历史需求,在QC的Delphi板块上置顶了好多年.官方一直没有实现.http://qc.embarcadero.com/wc/qcmain.aspx?d=21729众所周知Delphi的record和CPP的st

5.Swift枚举|结构体|类|属性|方法|下标脚本|继承

1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum  Celebrity{  case DongXie,XiDu,Nandi,BeiGai }  // 从左到右对应0,1,2,3 enum CompassPoint { case North case South case East case West //enum中可以定义方法 func show(){ print(self) } } //定义enum 变量 var p = CompassPoint.Nor

C语言学习笔记-9.结构体

一.结构体的定义与使用 1.结构体内部的每个变量称为字段或成员变量 2.定义方法:struct <结构体标记> {-}; 或 typedef struct {-} <结构体类型名>; 变量定义:struct <结构体标记> 变量1,2- 或 <结构体类型名> 变量1,2- 3.成员变量的访问: x.成员变量名           (*px).成员变量名           px->成员变量名 "->"称为指向运算符或箭头运算符

结构体和它在链表中的使用

一.结构体 由不同类型的数据组合成一个整体,以便引用,这些组合在一个整体中的数据是互相联系的. 1.1如何声明结构体呢? struct 结构体名  //结构体名字用作结构体类型的标志 {成员列表}; 比如: 1 struct student 2 { 3 int num; //2 4 char name[20]; //20 5 char sex; //1 6 int age; //2 7 float score; //4 8 char addr[30]; //30 9 }; 注意:声明只是指定了一

Swift入门(七)——结构体(Struct)

引子 之前我们在用Int,String等类型的时候,可能没有仔细研究过,其实这些基本类型与C或者Java不一样,不是严格的"基本类型",他们其实是经过封装的结构体. 按住Alt键点击Int类型后,可以看到Int结构体的完整定义 /// A 64-bit signed integer value /// type. struct Int : SignedIntegerType { var value: Builtin.Int64 /// A type that can represent