语法解释,不常见,不注意见不着。 function Read(var Buffer; Count: Longint): Longint; virtual; abstract; (注: TStream 类的方法)像这样的一个文法中的 var Buffer; 这个东西是Delphi 中的语法?这种没看到有介绍?在这里我的理解: 表示一个缓存。但为什么这么写,请高手指点。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是,声明为var类型,传递地址,并可以被改写 var 用来定义变量时或在方法中传地址。function TestFunc(var sStr: string): string;var aStr: string;beginend;但这里并没有 数据类型,这点搞不明。function Read(var Buffer; Count: Longint): Longint; virtual; abstract; (注: TStream 类的方法)还是不明白,请1楼高手指点。 有没有 介绍这种用法的文档? var 表示可以修改后面没有加类型 表示 可以是 字符串 可以是数组 可以是流 翻译成C的声明就是void* buffer我好像有相关的资料,但是不知道是在哪里,这种叫无类型变量,Delphi的帮助中应该有,但是全是英文的。这些都是基础的东西,目前网上或书上的东西都是拖拉控件的书,应该不好找。 无类型参数 声明var、const和out参数时,可以忽略类型说明。(值参数必需指定类型。)例如,procedure TakeAnything(const C);这里声明了一个叫做TakeAnything的过程,它接受一个任意类型的参数。调用这样的例程时,不能向其传递数字或无类型的数字常量。在过程或函数主体中,无类型参数与任何类型都是不相容的。要操作一个无类型参数,必需对其进行类型转换。通常,编译器不会检查对无类型参数的操作是否有效。下面的例子在函数Equal中使用的了无类型参数,该函数根据指定的字节数比较任意两个变量。function Equal(var Source, Dest; Size: Integer): Boolean;type TBytes = array[0..MaxInt - 1] of Byte;var N: Integer;begin N := 0; while (N < Size) and (TBytes(Dest)[N] = TBytes(Source)[N]) do Inc(N); Equal := N = Size;end;给出如下声明:type TVector = array[1..10] of Integer; TPoint = record X, Y: Integer; end;var Vec1, Vec2: TVector; N: Integer; P: TPoint;可以完成如下对Equal函数的调用:Equal(Vec1, Vec2, SizeOf(TVector)) //比较Vec1和Vec2Equal(Vec1, Vec2, SizeOf(Integer) * N) //比较Vec1和Vec2的前N个元素Equal(Vec1[1], Vec1[6], SizeOf(Integer) * 5) //比较Vec1的前5个元素和后5个元素Equal(Vec1[1], P, 4) //比较Vec1[1]和P.X以及Vec1[2]和P.Y 你在网上搜Object Pascal Reference.chm,上面我就是从里面摘出来的 TO littlestone08谢谢解答。。给分 200分(续) 请教QuickReport方面的问题 怎样将文本文件转换成mdb或者dbf?我是说用delphi,谢谢! 如何实现DELPHI程序发布成ASP程序,请教!!! 这究竟是不是数组的指针 请问:TwebBrowser的属性和事件的详细资料说明? 用100元上网卡换五套管理软件原代码 请教体育彩票6+1的组合算法 支持Delphi6的中文安裝製作工具 如何才能把AdoQuery查询出的记录另存为一个表,是Access数据库。单机上的,谢谢! 怎样用按钮将edit中的值添加到数据库 用过BusinessSkinForm的进来看下
function TestFunc(var sStr: string): string;
var
aStr: string;
beginend;
但这里并没有 数据类型,这点搞不明。
function Read(var Buffer; Count: Longint): Longint; virtual; abstract; (注: TStream 类的方法)还是不明白,请1楼高手指点。 有没有 介绍这种用法的文档?
后面没有加类型 表示 可以是 字符串 可以是数组 可以是流
声明var、const和out参数时,可以忽略类型说明。(值参数必需指定类型。)例如,procedure TakeAnything(const C);这里声明了一个叫做TakeAnything的过程,它接受一个任意类型的参数。调用这样的例程时,不能向其传递数字或无类型的数字常量。在过程或函数主体中,无类型参数与任何类型都是不相容的。要操作一个无类型参数,必需对其进行类型转换。通常,编译器不会检查对无类型参数的操作是否有效。下面的例子在函数Equal中使用的了无类型参数,该函数根据指定的字节数比较任意两个变量。function Equal(var Source, Dest; Size: Integer): Boolean;type TBytes = array[0..MaxInt - 1] of Byte;var N: Integer;begin N := 0; while (N < Size) and (TBytes(Dest)[N] = TBytes(Source)[N]) do Inc(N); Equal := N = Size;end;给出如下声明:type TVector = array[1..10] of Integer; TPoint = record X, Y: Integer; end;var Vec1, Vec2: TVector; N: Integer; P: TPoint;可以完成如下对Equal函数的调用:Equal(Vec1, Vec2, SizeOf(TVector)) //比较Vec1和Vec2Equal(Vec1, Vec2, SizeOf(Integer) * N) //比较Vec1和Vec2的前N个元素Equal(Vec1[1], Vec1[6], SizeOf(Integer) * 5) //比较Vec1的前5个元素和后5个元素Equal(Vec1[1], P, 4) //比较Vec1[1]和P.X以及Vec1[2]和P.Y