关于数据类型的问题

BS 2002-07-16 02:47:34
unit Unit2;

interface
uses Classes, dialogs, sysUtils;

type
TPersonRec = packed record
Name:string[20];
ID:string[8];
Sex:string[1];
Age:integer;
end;

TRecordStream = class(TFileStream)
private
function GetNumRecs:Longint;
function GetCurRecs:Longint;
procedure SetCurRecs(RecNo:Longint);
protected
function SetRecSize:longint;virtual;
public
function SeekRec(RecNo:Longint;Origin:Word):Longint;
function WriteRec(Const Rec):Longint;
function AppendRec(Const Rec):Longint;
function ReadRec(var Rec):Longint;
procedure First;
procedure Last;
procedure NextRec;
procedure previousRec;
property NumRec:Longint read GetNumRecs;
property CurRec:Longint read GetCurRecs write SetCurRecs;
end;

大家注意这里
function WriteRec(Const Rec):Longint;
function AppendRec(Const Rec):Longint;
function ReadRec(var Rec):Longint;
为什么Rec没有类型,但是运行又不会有错误
...全文
41 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
GreatGenie 2002-07-16
  • 打赏
  • 举报
回复
要在函数内做强制类型,举个例子:
procedure test(var x);
begin
inc(integer(x));
end;
如果中间没有integer(),编译就会报错。

Delphi中很多函数都是这么做的,比如
procedure FillChar(var X; Count: Integer; Value: Byte);
BS 2002-07-16
  • 打赏
  • 举报
回复
怎么没人理。高手来解释一下,分可以加
RockyZou 2002-07-16
  • 打赏
  • 举报
回复
up
cxx1997 2002-07-16
  • 打赏
  • 举报
回复
有意思,收藏
BS 2002-07-16
  • 打赏
  • 举报
回复
不太明白,那假设我要调用这样的函数,我怎么传递参数(难道不管什么类型直接传吗?),还有这个函数怎么知道我传的是什么东西,为什么要用这样的函数,一般在什么时候用
chechy 2002-07-16
  • 打赏
  • 举报
回复
这是Delphi特有的,函数内会做类型转换的。
一个经常使用的例子就是
Application.CreateForm

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧