delphi定义结构体
//结构体的⽐较普遍的两⽤法,具体还是得靠多看例⼦,帮助等。
//1.作为⼀个对象结构型使⽤
type
TclassRecord = record
rDate : string;
rTime : string;
end;
sizeof结构体大小//2.作为记录类型(数据协议解析时⽐较多使⽤,灵活⽅便)
//⾸先枚举⼏种数据类型
type TDateType =(TFullData,TRedDate,TReadTime);
type
TtextRecord = record
case i : TDateType of
//FullData与下⾯所有的变量,共享同⼀个内存区域,各个⼦类⾃⼰定义就可以了,i并⽆实际意义。 //TtextRecord作为⼀个字符串的形式存在内存中
TFullData :(fulldata : array[0..19]of char);
TRedDate :
(
rYear : array[0..1]of char; // rYear的值就是 TFullData 的第1,第2位
rMonth: array[0..1]of char; // rMonth的值就是 TFullData 的第3,第4位
rDay : array[0..1]of char; // rDay的值就是 TFullData 的第5,第6位
);
TReadTime :
(
rHour : array[0..1]of char; //rHour的值也是 TFullData 的第1,第2位
rMinute : array[0..1]of char; //rMinute的值也是 TFullData 的第3,第4位
rSecs : array[0..1]of char; // rSecs的值也是 TFullData 的第5,第6位
);
end;
var
Form1: TForm1;
GvTdatetimerecord : ^Tclassrecord;
GvTtextRecord : ^TtextRecord;
implementation
{$R *.dfm}
//----------作为对象类型使⽤-----------
procedure TForm1.Button1Click(Sender: TObject);
begin
New(GvTdatetimerecord); //分配内存,按F1翻译吧
GvTdatetimerecord.rDate := DateToStr(now);
GvTdatetimerecord.rTime := TimeToStr(now);
ShowMessage('当前⽇期时间:'+GvTdatetimerecord.rDate+GvTdatetimerecord.rTime); dispose(GvTdatetimerecord); //释放
end;
//---------------作为记录体使⽤----------
procedure TForm1.Button2Click(Sender: TObject);
begin
new(GvTtextRecord);
// 赋值
fillchar(GvTtextRecord.fulldata,Sizeof(GvTtextRecord.fulldata),0);
StrCopy(GvTtextRecord.fulldata,Pchar(FormatDateTime('yyMMDD',now)));
showmessage(GvTtextRecord.fulldata);
showmessage('年份:'+GvTtextRecord.rYear);
//这些⼦结构体的值你可以尝试字做些例⼦,⽐较能理解记录类型的作⽤
// fillchar(GvTtextRecord.fulldata,Sizeof(GvTtextRecord.fulldata),0);
// StrCopy(GvTtextRecord.fulldata,Pchar(FormatDateTime('hhmmss',now)));
/
/ showmessage('⼩时:'+GvTtextRecord.rHour);
dispose(GvTtextRecord)
end;
我解释的可能不是很全⾯,楼主⾃⼰做例⼦领悟吧。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论