unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
PUpData = ^TUpData;
TUpData = record
a1: array[1..2] of char;
a2: array[1..3] of char;
a3: array[1..4] of char;
end;
type
TForm1 = class(TForm)
btn1: TButton;
btn2: TButton;
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//记录内容赋值给字符串
procedure TForm1.btn1Click(Sender: TObject);
var
s: string;
p: pchar;
UpData: TUpData;
begin
//初始化记录
ZeroMemory(@UpData, SizeOf(UpData));
//赋值
UpData.a1 := 'a1';
UpData.a2 := 'a22';
UpData.a3 := 'a333';
//分配字符串长度
setlength(s, SizeOf(UpData));
//记录内容赋值给字符串
p := StrLCopy(pchar(s), @UpData, SizeOf(UpData));
//显示结果 a1a22a333|9|9
showmessage(s + '|' + InttoStr(length(s)) + '|' + InttoStr(SizeOf(UpData)));
end;
//字符串内容赋值给记录
procedure TForm1.btn2Click(Sender: TObject);
var
s: string;
p: pchar;
UpData: TUpData;
begin
//初始化记录
ZeroMemory(@UpData, SizeOf(UpData));
//赋值
s := 'sendinfo.suv';
//字符串内容赋值给记录
p := StrLCopy(@UpData, pchar(s), sizeof(TUpData));
//显示结果 sendinfo.
showmessage(UpData.a1 + UpData.a2 + UpData.a3);
end;
end.