Delphi Compos & Units

Delphi用の各種コンポーネントやユニットなどです。
基本的に使用に関してはご自由にどうぞ。細かい規定についてはアーカイブ内のドキュメントやソース内部のコメントなどを参照してください。

MD5計算ユニット

サイズ4,018 byte
SHA3-2562c430d1d46005a421098cd2c31aba5256320c006bc3fbf65d2269bd47032ce05

download >>> MD5.ZIP

MD5の計算をDelphiで書き直した物です。

2006/09/03
整数オーバーフロー対策 for Delphi 7
2004/07/09
2GBoverのファイルの計算で間違うのを修正
2004/07/04
初出

乱数クラス

サイズ12,982 byte
SHA3-25690d9a4ef45d0d3788fa8eae4dd8cc9e948d82d67933e7d2b099b315522c060ec

download >>> randoms_rev5.zip

M系列、Mersenne Twister、SFMT、XorShift疑似乱数をクラス化したものです。

2015/10/24
Delphi 10にて、64bit版ではxmm4レジスタの保存が必要になったのでそれの対応
2013/01/29(2回目)
SSE2版SFMTクラスを再追加。
VCでアセンブラコードをはき出させて、それをDelphi用に手直し。
各種乱数の速度測定用のサンプルプログラムも追加。
2013/01/29
SSE2版SFMTクラスはバグってます。使わないでください!
検証コードそのもののバグで、SSE2版が異常な出力をしていることを見逃していました。
2013/01/27
SSE2版SFMTクラスを追加
それに伴い、SFMTクラスの内部構造を少々変更
クラス参照型追加(TRandomBase)
2008/11/02
SFMTとXorShiftを追加
基底クラス(TRnd)を定義して、そこからの派生クラスとした
2004/05/05
初出

時間形式変換ユニット

サイズ2,567 byte
SHA3-2564393db4854c35b352f4eff48c123c794f02f662cb1a98305d6653a970293cd9d

download >>> TIMET.ZIP

UTC <-> DATETIME, UTC <-> FILETIME, DATETIME <-> FILETIMEの相互変換ルーチンをまとめたユニットです。

NkMemIniFile改

サイズ11,791 byte
SHA3-2564e6c68814e4827cfc08801281c0a6640542c0724b88168d16f043c8b5a60be51

download >>> NkMemIniFile_Alt.ZIP

中村氏のNkMemIniFileをDelphi2009対応&Create,UpdateFile時にキャラクターエンコーディングを指定できるようにしたものです。

Susie Plug-in 読込コンポーネント ver 1.26u1

サイズ78,210 byte
SHA3-2567576429aacaa5b6ab64bf87a8c70a3081117e1264d7ae7b0aea61efe70452fa5

download >>> spis126u1.zip

計氏作成のTSPIsをDelphi2009以降で動作するように改造した物です。が、動作確認はDelphi10/11.3でのみ行っています。
ver 1.26u1からW系API対応と.sph(64bit plug-in)対応を追加しました。
ver 1.26がbaseになっています。

Susie Plug-in 読込コンポとビットマップ改 for Delphi2009

サイズ21,970 byte
SHA3-2560484a0b204b52bd8fc08c7d9cb9715623166f183a68fb70b58cac376468d5b42

download >>> spis126u0.zip

計氏作成のTSPIsをDelphi2009で動作するように改造した物です。
ver 1.26がbaseになっています。

Susie Plug-in 読込コンポとビットマップ ver 1.26(Original)

サイズ32,885 byte
SHA3-256321d76076b233a2e87e86c2638ac088c17b5ce81ebae7665b59136b93beb31d3

download >>> spis126.zip

計氏作成のオリジナルです。

SimpleMouseGestures rev.2

サイズ9,609 byte
SHA3-2560a199d4c7c9c861a8f30e70c41089f013b89bae4877c91336e868fbeb12a11c0

download >>> simplemousegestures.ZIP

比較的シンプルなMouseGestureRecognizer & MouseGestureEngineです。2010付属のMouseGestureが微妙に使いづらかったので作成してみました。

統合アーカイバDLL Server/Client for Delphi rev 0.2.0

サイズ819,244 byte
SHA3-25662b8d1e3760f3e54a765f29369a5b507924f109c8e74a4bd3dd4f950189bec42

download >>> arcdll_srvcli_0.2.zip

64bit Appにて32bitの統合アーカイバDLLを使用するためのServer/Clientシステムのコードです。
自分が使うAPIのみ対応してます。

64bit-32bit間だけではなく、32bit-32bitでももちろん使用可能です。一つの実行ファイルでパラレルに同じDLLを使いたいときに便利かも?

TODO:archelper.exeをバイナリリソースにして、テンポラリに書き出して実行/終わったら削除、という機構を実装

CRC計算ユニット

サイズ8,306 byte
SHA3-25670d52678fb7e8d5053eb4ae8faaf61c0c1060e8350259f0945049d3bae9e060a

download >>> CRCS.ZIP

CRC-32、CRC-64(ISO、ECMA-182)を計算するユニットです。別途DCPcrypt(http://www.cityinthesky.co.uk/)が必要になります。

pasjpeg2k 2.5.0 rev.10

サイズ83,324 byte
SHA3-256cfd0c7f176ef2de245a0bde5f20ec3504477e4719fed613c4be5e47ae10a4963

download >>> pasjpeg2k_2.5.0_rev.10.zip

DelphiでJpeg2000を読み書きする為のユニットです。
別途OpenJPEGにて配布されているopenjp2.dllが必要になります。

2.5.0 rev.9からの変更点
win64にてSSE InvalidOp & Overflow Exceptionが発生するケースに対処
2.4.0 rev.8からの変更点
openjp2.dll ver 2.5.0対応
2.3.0 rev.7からの変更点
openjp2.dll ver 2.4.0対応
2.2.0 rev.6からの変更点
openjp2.dll ver 2.3.0対応
2.2.0 rev.1からの変更点
ICC Profileのサポートコードを一から書き直してパフォーマンスを(比較的)まともにしました。
ICC Profileデータがあって、且つ、Alphaデータがある時に画像データを壊していたミスを修正しました。
2.1.2 rev.4からの変更点
openjp2.dll ver 2.2.0に対応しました(decodeのmulti thread対応)
LoadOpenJp2Dll関数が常にfalseを返していたミスを修正しました。
TJpeg200BitmapのUseICC propertyのdefaultをFALSEに変更しました。
rev.3.1からの変更点
EYCC formatをサポートしました。
color profileをデフォルトで有効にしました。
rev.3からの変更点
自前buildのdllとlibの配布を取りやめてOpenJPEGのサイトからのダウンロードに切替。
自サイトのURLを新しい物に変更。
openjp2.dll ver 2.1.2での簡単な動作確認。
rev.2からの変更点
CMYKからDibへの変換のミスを修正。
実験的にColor Profile対応(J2K_USE_COLOR_PROFILEを定義する必要があります)
rev.1からの変更点
delayed loadを辞めて、LoadLibrary/FreeLibraryを使う方式に変更。delayed loadもOPENJP2_USE_DELAYEDを定義すれば使えるようになっています。