Delphi XEのDiagnostics.TStopwatch
と同じサービスを提供するストップウォッチクラス(好ましくはオープンソース)はありますか?Delphi 2007のストップウォッチクラス
答えて
私の好みはDelphi Praxisフォーラムで見つけthis(TStopUhr)の実装に行きます。
抜粋:
type
TStopUhr = class
private
FStoppedTime : Int64;
FStartValue : Int64;
FStopValue : Int64;
FStartTime : TDateTime;
FStopTime : TDateTime;
FMethode : TStopUhrMethode;
FMethodeInUse : TStopUhrMethode;
protected
function GetStoppedTimeStr: String;
public
Constructor Create;
Destructor Destroy; Override;
procedure Start;
procedure Stop;
property StartTime : TDateTime read FStartTime;
property StopTime : TDateTime read FStopTime;
property StoppedTime : Int64 read FStoppedTime;
property StoppedTimeStr : String read GetStoppedTimeStr;
property MeasureMethode : TStopUhrMethode Read FMethode Write FMethode;
end;
使用サンプル:
var
StopUhr : TStopUhr;
begin
StopUhr := TStopUhr.Create;
StopUhr.MeasureMethode := su_TickCount; // default = su_DateTime
StopUhr.Start;
// zu messende Aufgabe
StopUhr.Stop;
ShowMessage(StopUhr.StoppedTimeStr);
StopUhr.Free;
end;
それは質問のコメントのスレッドで推奨するものRRUZと同様の機能を提供します。
私はそれが低い技術であることを認識していますが、Win32 API GetTickCount
の機能が十分に機能しています。ほとんどのPCでは、解像度は約15〜20ミリ秒です。
私はすべてのクラスなしで、このようにそれを使用しますが、あなたは簡単に独自のクラスを記述することができます。
function TimerElapsed(tick1,tick2:DWORD):DWORD;
begin
if ((tick2-tick1) < $80000000) then { timer roll-over check }
result := (tick2 - tick1) { normal }
else
result := (not tick1)+tick2; {rollover calculation}
end;
function TimingDemo:Cardinal;
var
time1,time2:Cardinal;
begin
time1 := GetTickCount;
DoSomethingSlow;
time2 := GetTickCount;
result := TimerElapsed(time1,time2); // return elapsed mSec.
end;
私は経過時間を計算するのに少し異なるアルゴリズムを使います: 'function TimerElapsed(tick1、tick2:DWORD):DWORD; begin tick2> = tick1 then {timer roll-over check} 結果:=(tick2 - tick1){通常} else 結果:=(MAXDWORD - tick1)+ tick2; {ロールオーバー計算} 終了; ' –
MAXDWORD-tick1とtick1は同じことをすると思います。どちらも1の補数(論理NOT)です。 –
- 1. Delphi 2007 IMAGE_FILE_LARGE_ADDRESS_AWARE
- 2. Delphi Outlook 2007/2010
- 3. 測定のC#/ストップウォッチクラス
- 4. コードエディタ(Delphi 2007)のIf-Then-Elseステートメント
- 5. ビットマップを描画するときのDelphi 2007と2010の違い
- 6. Delphi 2007の非IISホスト型WCF、C#Webサービスの使用方法
- 7. Delphi 2007のhtml文脈依存ヘルプの使い方 - 基本
- 8. Unicode変換、データベースの不具合(Delphi 2007 to XE2)
- 9. Delphi 2007の透明度を持つビットマップをPNGに保存
- 10. Delphi 2007でAmazonへのHTTPS POSTコールを行う
- 11. Delphi 2007:IDEモデルビュー:ドキュメントが生成されない?
- 12. Delphi 2007 for Windows 7でデバッガが終了する
- 13. Delphi 2007からXE2にアップグレードするには?
- 14. Delphi 2007 ASP.NET AJAX呼び出しが[オブジェクトオブジェクト]を返す理由
- 15. Delphi 2007は起動しません:型初期化例外
- 16. Delphi 2007:delphiで別のアプリケーションを開き、そのアプリケーションでアクションを実行します。
- 17. Delphi 2007 IDEはRCファイルをコンパイルする際にDelphi 2010のcgrc.exeを使用できますか?
- 18. Delphi 2007が既にインストールされた後にDelphi 2006をインストールすることはできますか?
- 19. 私はストップウォッチクラスを使用させません。視覚スタジオで
- 20. Delphi 2007のパスワードで保護された場所にファイルをダウンロードする方法
- 21. Delphi 2007のバージョン情報がExeから見つかりません
- 22. Delphi 2007を使用してBase64文字列をバイナリとしてディスクに保存
- 23. Delphi 2007 VCLプロジェクト名はコンパイルされたExe名と異なりますか?
- 24. Delphi 2007アプリケーションでWindows 7互換アイコンが設定されています
- 25. Access 2007 with SharePoint 2007
- 26. Delphi XEとWinsock
- 27. Delphi(XE2)のUnicodeバージョン
- 28. Delphi 2010-XEのTWordApplication
- 29. Delphiリモートデバッガフリーズ
- 30. オフィス2007のMicrosoft Office Interop Outlook 2007
これを試してみてくださいhttp://delphi.about.com/od/windowsshellapi/a/delphi-high-performance-timer-tstopwatch.htm – RRUZ
@RRUZ:非常に優れたリソースですが、ライセンスステータスがわかりません。あなたがそれを移行するなら、私はそれをaswerとして受け入れることができます。 – menjaraz
あなたはZarkoにライセンスの使用法によって直接質問することができますが、このコードには制限がありません。 – RRUZ