Tech Note 04b: Images Databaseを作成する February 05, 2004
© NSB Corporation. All rights reserved. |
[英語版]
Contributed by Oscar De Leon odeleon© finework.cl
このテクニカルノートはアプリケーションからImages Database(イメージデータベース)を実装する方法を説明します。
このプロセスには3つのステップがあります:
始める前に:
必要なもの:
基本的なイメージの準備は、
イメージデータベースはPilRCを使って作成します。このコマンドライン・ツールは、コンパイルするリソースの情報と共に.rcpファイルを使います。
内容を単純にするため、.rcpファイルの詳細なシンタックスはここでは説明しません。AaronのウェブサイトにPilRCの詳しいドキュメントがあります。
Notepad等を使って2つのテキストファイル(resources.rcp と createdb.bat)を作成してください。
resources.rcp
私のサンプルは55個のイメージを持っていて、Cat00001.bmp から Cat00055.bmpと名前が付いています。従って、.rcpファイルはこのような内容になります。
BITMAPCOLOR ID 2001 "Cat00001.bmp"
BITMAPCOLOR ID 2002 "Cat00002.bmp"
BITMAPCOLOR ID 2003 "Cat00003.bmp"
...
BITMAPCOLOR ID
2004 "Cat00054.bmp"
BITMAPCOLOR ID 2005 "Cat00055.bmp"
createdb.bat
この1行のスクリプトのファイルは、PilRCのコマンドライン シンタックスを簡単にするためで、Windows Explorerまたはショートカットから実行できます。また、DOSのコマンドプロンプトにタイプしても構いません。
PilRC -ro -type data -creator FW10 -o ItemsGRDB.prc resources.rcp
以下の内容を持つ上記のシンタックスで、イメージデータベースが作成されます。
-ro | PilRCにprcデータベースを作るよう指示する。 |
-type data | データベースタイプ "data" |
-creator aaaa | データベース Creator Id。あなたのアプリケーションと同じCreator IDを使うと、イメージデータベースはアプリケーションと一緒に取り除かれます。 |
-o filename | データベース名。デバイス内でのデータベース名。".prc"を含む。 |
resources.rcp | 上記で作成したリソース情報ファイル。 |
createdb.batスクリプトを実行してイメージデータベースを作成してください。(この例ではItemsGRDB.prc)
イメージデータベースが作成できましたので、POSE上にドラッグ&ドロップしてインストールしてください。
さて、どのように必要なイメージを見つけて、それをどう表示するかを知る必要があります。ここでは1つの例を使ってそれを説明します。
私のアプリケーションは、Sports Items Database(価格リスト)からアイテムを拾い、オーダー表を作成します。
全部で3つのデータベースを持っています:OrdersDB.PDB(オーダーを保存)、ItemsDB.PDB(アイテムの価格リスト)、ItemsGRDB.PRC(アイテムのイメージ)
ユーザは価格リストに直接アクセスができ、以下のスクリーンを見ることができます。
ユーザがアイテム番号15を選んで、[ i ] ボタンを押した場合、そのアイテムの詳細が次のスクリーンに現れます。
このイメージはAfter Code内にある以下のコードによって表示されます。(以下は関連するコードのみ)
Sub Form1060_After()
'Local Variables. 'Draw a Frame Around the Image. |
イメージインデックスはアイテムインデックスに2000を足すことによって得られています。上記の例の場合、アイテム番号15(グローバル構造エレメント、ItemDescInfo.ItemCode、に含まれる)ですから、ID = 2015を持つリソースを探すことになります。これは.prcファイルで使われているID値に繋がっています。
dmGet1Resourceは最後に開いたデータベース内(この場合、イメージデータベース)でリソースを探しますので、0001から9999の間でしたら、どの番号でもイメージのインデックスに使うことができます。従って、他のデータベースから間違ったリソースを掴む危険はありません。ですから、イメージデータベースはイメージを表示する直前に開き、直ぐに閉じます。
最後に、アプリケーションが適切な処理をするには、以下のことも考慮に入れてください。
Drawbitmapはリソース(イメージ)が見つからなかった場合、アプリケーションをクラッシュさせます。従って、