4

DateUtils.pas の DateTimeToMilliseconds が内部としてマークされているのはなぜですか? 使用できますか?

{ Internal, converts a date-time to milliseconds }
function DateTimeToMilliseconds(const ADateTime: TDateTime): Int64;
var
  LTimeStamp: TTimeStamp;
begin
  LTimeStamp := DateTimeToTimeStamp(ADateTime);
  Result := LTimeStamp.Date;
  Result := (Result * MSecsPerDay) + LTimeStamp.Time;
end;

【デルフィXE】


About.comでこれを見つけました:

経験上、関数と EncodeDateTime を使用して、互いにわずか 1 ミリ秒しか離れていない 2 つの TDateTime 値を作成すると、関数は期待どおりに MillisecondsBetween を返さず、正確ではないことを証明しています。

したがって、数ミリ秒を気にしない場合は、それを使用する必要があります。

4

2 に答える 2

1

使用できない理由はありません。非推奨ではなく、内部で使用されています。

関数ヘッダーがインターフェースセクションにないため、「内部」としてマークされています。そこにヘッダーをコピーすると、機能するはずです。

このようなサードパーティのユニットに「パッチ」を適用する場合、常に行うことは、変更する前に、独自の検索パス (PatchLibs という名前) 内のディレクトリにコピーすることです。そうすれば、元のファイルを「損傷」することはなく、元のユニットを再構築する方法について心配する必要もありません。

于 2013-06-14T13:56:26.167 に答える