System.Assign
是一个内在函数。它的官方文档是完全没有希望的。它说:
function Assign(var F: File; FileName: String; [CodePage: Word]): Integer; overload;
function Assign(var F: File; FileName: String; [CodePage: Word]): Integer; overload;
function Assign(var F: File; FileName: String; [CodePage: Word]): Integer; overload;
我只能猜测为什么文档生成器无法处理此功能。但是这三个相同的重载显然是假的。它不是一个函数,而是一个过程。
不管。因为它是内在的,所以不能将它分配给函数指针。解决方案是将其包装在您自己的功能中。
procedure MyAssign(var F: File; const FileName: string);
begin
Result := System.Assign(F, FileName);
end;
然后,您可以将该函数分配给过程类型的变量或常量。
const
AssignProc: procedure(var F: File; const FileName: string) = MyAssign;
的另一个变体Assign
采用指定代码页的第三个参数,以Word
. Assign
如果第一个参数是 a ,则只能调用该函数TextFile
。
所以,内在函数本身就是一条定律。
请注意,文档确实声明Assign
不应再使用。相反,您应该使用AssignFile
. 请注意,文档再好不过了!