iは、オペレータのオーバーロードでの作業、私はこのような状況を持っている、側FRA:F2047循環ユニット基準
unit _TIns;
interface
uses
_TExtract;
type
TIns = record
private type
TInsArray = array [1..90] of Boolean;
var
FInsArray: TInsArray;
public
class operator Implicit(const Value: TExtract): TIns;
class operator Implicit(const Value: TIns): TExtract;
end;
implementation
// Code
end.
と、他方の側から:もちろん
unit _TExtract;
interface
uses
_TIns;
type
TExtract = record
private type
TExtractEnum = 1 .. 90;
var
FExtractEnum: TExtractEnum;
public
class operator Implicit(const Value: Integer): TExtract;
class operator Implicit(const Value: TExtract): Integer;
class operator In(A: TExtract; B: TIns) : Boolean;
end;
implementation
// Code
end.
、私は理解していますどこが問題なのか、それは両方のユニットが他のものを呼び出すことです。しかし、それを解決するものとして理解していない。私が同じ単位でそれを定義しようとすると、最初のTExtractはTInを見つけられません。そうでなければTInsはTExtractを見つけません。 私は依存関係を削除して解決することができますが、存在しない場合にのみ解を解くことができますが、このデータ型を両方に使用します。 おかげさまで、ありがとうございました。
[stackoverflowの] [1] [1]:のhttp://のstackoverflow。 com/questions/1284959/how-to-avoid-circular-unit-reference – PresleyDias