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;
ドキュメントジェネレーターがこの機能に対応できない理由については推測することしかできません。しかし、3 つの同一のオーバーロードは明らかに偽物です。これは関数ではなく、手続きです。
どんなに。これは組み込みであるため、関数ポインターに割り当てることはできません。解決策は、独自の関数でラップすることです。
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;
のもう 1 つのバリアントはAssign
、コード ページを指定する 3 番目のパラメータを として渡しますWord
。への最初の引数Assign
がTextFile
.
したがって、組み込み関数は実際にはそれ自体が法則です。
Assign
ドキュメントには、使用すべきではないと記載されていることに注意してください。代わりに を使用する必要がありますAssignFile
。ドキュメンテーションはそれほど良くありません。