2011年12月17日

Delphi2010でOpenCV

コンピュータに視覚を与えるライブラリ、
OpenCV(http://opencv.jp/) をDelphiで使うためのライブラリはいくつか公開されていますが、Delphi2009以降での文字コード変更等に伴い、現在の開発環境であるDelphi2010でそのまま使えるライブラリが見当たりませんでした。そこで現存するDelphi向けOpenCVライブラリにわずかな手を加え、DLLのバージョン等を調整したライブラリを作成したので公開します。

ベースとなっているのは以下のサイトで作成されたDelphiOpenCVです。細かい説明等がありますので、一度ご覧ください。
netakiri labo(http://netakiri.net/labo/cv_preparation.shtml)

以下のファイルをダウンロードし、
DelphiOpenCv2010.zip

利用するプロジェクトのディレクトリに、展開された全ファイルを配置してお使いください。

※ このライブラリを使用したことによるいかなる結果に対しても責任を負いません。
※ すべてのOpenCV関数を網羅しているわけではありません。
※ 必要な関数は追加してお使いください。そういうのが簡単なのがDelphiです。






posted by Tig3r at 19:41| Comment(0) | TrackBack(0) | Delphi

2009年11月16日

チェックボックスのOnClick

チェックボックスのチェック状態を制御するために、Checkedプロパティを操作するが、この操作によってチェック状態が変化し、かつそのチェックボックスがEnabledである場合、
onClickイベントが発生する。

本当にそうなのかとStdCtrlsの中身拝見。

TCheckBoxの継承元、TCustomCheckBoxのSetStateで、
SetStateの中でClickを呼び出してる。こういう、コンポーネントの中身の挙動を
ソースで追いかけられることが多いのもDelphiの魅力の一つだ。

というわけで仕方ないので、チェック状態を変更しつつも、Click時の処理を行いたく
ないならば、グローバルでフラグでも立てておくか、あるいは一時的にonClickプロシジャを
なしにして、あとから戻す、という手を使う…のでいいのかなあ。

CheckBox1.onClick := nil;
CheckBox1.Checked := False;
CheckBox1.onClick := CheckBox1Click;

他にいい方法あるだろうか。


posted by Tig3r at 08:32| Comment(0) | TrackBack(0) | Delphi

2009年01月19日

Delphi2009とMySQLのバージョンについて

ひとことだけです。

Delphi2009で接続できるMySQLは、5.0.XXXまで。
5.1.XXXは接続できません。


…問題解決にしばらくかかったよ…
posted by Tig3r at 17:20| Comment(0) | TrackBack(0) | Delphi

2009年01月07日

Delphi2009でDLLを使用する場合、文字コードで嵌まる

MP3を再生したり変換したり、といった機能を持つアプリケーションを作っているわけで、以前はDelphi用のMP3再生VCLであるTMP3PLAYERを使っていたのだが、これが公開停止して暫く経っており、今後入手できる見込みもない。

そこで、今でもVectorにDLLが存在していて、それなりに入手の容易なVBMP3.DLLを用い、自前でMP3関連のモジュールを作ることにした。VBMP3のDLLをDelphiから使用する方法については資料も多いし、全部の機能を使うわけでもないので、必要なものだけヘッダファイル的なものを作って使おうと思っていたのだが…

ちなみにVBMP3は以下で入手可能


続きを読む
posted by Tig3r at 05:25| Comment(0) | TrackBack(0) | Delphi

2009年01月06日

DelphiでDirectXを使う準備(QuadrupleD)

あけまして。

Delphi環境でDirectXを簡単に使用するためには、いくつかの外部モジュールがあるが、その中で長く使用してきたのが、 Project Quadruple D の提供する、QuadrupleD(以下DDDDと表記)だ。


今回は新たに導入したDelphi2009環境にDDDDのインストールを行ったので、その経緯を報告する。

なお、互換性の関連上、導入したのはバージョン2.13a(DirectX8まで対応版)。まだターゲットに2000もあるので。

まずは何はともあれ、上記のサイトから2.13のアーカイブと、2.13aのパッチを入手し解凍する。
続きを読む
posted by Tig3r at 15:57| Comment(0) | TrackBack(0) | Delphi

2008年12月18日

FreeDBからCD情報を取得するためのDISCID算出

ウルトラご無沙汰。

WindowsMediaPlayerなどでは、突っ込んだCDの内容を勝手に調べて、そのアルバム名とかアーティスト情報とか、曲名とかを表示してくれる。これはもちろんCDにその内容が書き込まれているわけではなくて、CDに収録された曲の長さと数の情報から、Internetを通して情報を取得し、それを表示するのだ。

自作のアプリケーションに、この、CDから情報を取得する機能をつけようと思った。

CDをPCに突っ込んで、Explorerで内容を見ると、Track01.cdaといったファイル名のファイルがトラック数だけ存在するのがわかる。これがWindowsが仮想的にCDのTOC情報をファイルとして扱えるように見せている仮装TOCファイルだ。一曲分44バイト。CD一枚分のTOCから、あるアルゴリズムに基づいてDISC_IDを算出してやると、それをもとにFreeDBサーバに対して問い合わせをかけて、CD情報を取得することができる。

で、そのDISC_IDの取得だが、Posix系のOSとかでは簡単に取得するプログラムが流通しているけれども、Windows環境、しかも自分の開発言語であるDelphiにはそんなものない。無いものは作るのがMZユーザDelphiユーザ。早速情報を検索する。続きを読む
posted by Tig3r at 02:58| Comment(0) | TrackBack(0) | Delphi