1

Rect関数は、次の 2 つのユニットで宣言されます。

System.Classes.Rect
System.Types.Rect

このあいまいさはなぜですか?これらの関数のいずれかが非推奨ですか? どちらを優先する必要がありますか?

4

2 に答える 2

3

Rectタイトなループ (I/O などを行わない) で呼び出す場合は、 を呼び出すことを検討しtypes.Rectてくださいclasses.Rect。呼び出しますtypes.Rect(ただし、独自のRectをインライン化する必要がある場合があります...)。それ以外の場合は問題ではありません。1 レベルの間接性を節約するためだけに、「用途」に「型」を含める必要はありません。

于 2013-05-30T00:23:14.020 に答える
3

ドキュメントからSystem.Types.Rect、長方形の四隅の整数値を取ります。System.Classes.Rect一方、2 つTPointの s を必要とするオーバーロードも提供します。1 つは左上用、もう 1 つは右下用です。どちらも a を返すTRectため、どちらを使用するかは実際には選択の問題です。

後者の方が柔軟性が高い (2 つのオーバーロードを提供する) ため、uses 句にClassesafterを含めTypesて (両方を使用する場合)、 によって提供されるより用途の広いメソッドを隠さないようにすることをお勧めしますClasses

于 2013-05-30T00:13:16.850 に答える