2002.04.20 更新

■Delphiで小さ目のSusie Plug-inを作る

●はじめに

Borland Delphi 6 Personal を入手したのでとりあえず早速 Susie Plug-in を作成してみることにします。

Personalのパッケージ版には「Object Pascal言語ガイド」「クイックスタート」の2冊が付くようですが、ダウンロード版にもこれらが PDF で入っているようです。(Borland Delphi Personal Installer\documentation フォルダ)


●Susieプラグイン?

Susieプラグインとは何か?や関数の説明、は Susie 32bit plug-in library の Spi_api.txt、Susieプラグインの制作方法kana's Home Page などを見てください。

サンプルソースや資料は C/C++ 向けが多いですが、次のサイトでは Delphi で作成されたプラグインがソース付きで公開されています。
Kei's temporary house


●コンセプトはコンパクトで

Delphi のクラスライブラリ VCL の良さは十分に知っているのですが、VCL を使用するとできあがるプログラムのサイズが大きくなってしまいます。
ここではあえて VCL を使用せずに コンパクトなプラグインを目指すことにします。



C/C++ では 世界最小のSusie Plug-inを作る のようにできるのですが、Delphi ではどうもランタイムを切り離すことができなさそうです。
そうするとプラグインを作成するのに最低限必要な構成は、
uses {System,} Windows;
でしょうか。

library delphispi;
uses Windows;
begin
end.
試しにこれをコンパイルすると 8KB。
uses に SysUtils を追加すると +30KB、Classes を追加すると +85KB。
Dialogs を追加したりなんかすると 400KB オーバー。
といった感じのようです。

System ユニットを眺めてみると、Break, Continue, Exit, Dec, Inc, SizeOf など C では文法レベルのものが手続きや関数になっているんですね…。
まあ System ユニットは自動的に組み込まれてしまうため外したくても外せませんが。



ということで、基本的に頼れるのは Win32 API になります。
VCL による高い生産性を無駄にしているような気がしますが、コンパクトさのためにはやむをえません。
まだ Delphi には神速のコンパイルがあります。コンパイル中にちょっと一服ができませんが…。

Delphi での Win32 API プログラミングは次のサイトが参考になります。
Win32 API by Object Pascal of Delphi
Common Files\Borland Shared\MSHelp フォルダに Win32 API のヘルプがありますが、英語です。


●サンプルソース

あらゆる説明は飛ばして、ソースを出して終わります(^^;
ライブラリを構築した方が良いんでしょうが、スケルトンといった感じです。

自由に改変して使用して下さい。
はじめてのDelphiプログラミングのようなものなので変なところがあるかもしれませんが。

Delphiによる小さめSusieプラグインサンプルソース(00IN)(4,048バイト) 2001.09.10


半年以上ぶりにDelphi起動(^^;

Delphiによる小さめSusieプラグインサンプルソース(00AM)(3,331バイト) 2002.04.20


戻る