リソース

このセクションでは、リソースタイプの Natural オブジェクトについて説明します。

Natural for UNIX でサポートされる HTML ファイルや XML スタイルシートなど、Natural 以外のファイルタイプは、RES ディレクトリ内の異なるファイルにあります。Natural では製品とともにいくつかのリソースが提供されますが、ユーザーが使用するアプリケーションの独自のリソースを RES ディレクトリに保存することもできます。

このドキュメントでは、次のトピックについて説明します。


リソースの使用

Natural では次の 2 種類のリソースが区別されます。

  • 共有リソース
    共有リソースは、Natural アプリケーションで使用される Natural 以外の任意のファイルで、Natural ライブラリシステムで管理されます。 

  • プライベートリソース
    プライベートリソースは、唯一の Natural オブジェクトのみに割り当てられ、そのオブジェクトの一部であるとみなされるファイルです。オブジェクトは最大で 1 つのプライベートリソースファイルを持つことができます。現時点でプライベートリソースを持つのは Natural ダイアログのみです。

Natural ライブラリに属する共有リソースもプライベートリソースも、ファイルシステム内の Natural ライブラリを表すディレクトリの ..\RES という名前のサブディレクトリで管理されます。

共有リソース

共有リソースは、Natural アプリケーションで使用される Natural 以外の任意のファイルで、Natural ライブラリシステムで管理されます。共有リソースとして使用する Natural 以外のファイルは、Natural ライブラリの ..\RES という名前のサブディレクトリに含める必要があります。

共有リソースの使用の例

ビットマップ MYPICTURE.BMP は、ライブラリ MYLIB に含まれるダイアログ MYDLG のビットマップコントロールに表示されます。最初にビットマップは、ディレクトリ ..\MYLIB\RES に移されることによって Natural ライブラリ MYLIB に挿入されます。次のコードは、ダイアログ MYDLG のコードの一部で、その後このダイアログをビットマップコントロールに割り当てる方法を示しています。

DEFINE DATA LOCAL
01 #BM-1 HANDLE OF BITMAP 
... 
END-DEFINE 
* (Creation of the Bitmap control omitted.) 
... 
#BM-1.BITMAP-FILE-NAME := "MYPICTURE.BMP" ... 

ビットマップを共有リソースとして使用する利点は次のとおりです。

  • パス名を指定しなくても Natural ダイアログにファイル名を指定できます。

  • ファイルは、ファイルを使用する Natural オブジェクトとともに Natural ライブラリに保持できます。

注意:
以前の Natural バージョンでは、Natural 以外のファイルは、通常は環境変数 NATGUI_BMP で定義されたディレクトリに保管されていました。この方法を使用する既存のアプリケーションは、これまでと同様に作動します。現在のライブラリで共有リソースファイルが見つからない場合、Natural は常にこのディレクトリを検索するからです。

プライベートリソース

プライベートリソースは、Natural オブジェクトの一部であるバイナリデータを保存するために Natural によって内部的に使用されます。この場合のファイルは、ファイル名の拡張子 NR* で認識されます。* は Natural オブジェクトのタイプに依存する 1 文字です。Natural ではプライベートリソースファイルとその内容が自動的に管理されます。Natural オブジェクトは、最大 1 つのプライベートリソースファイルを持つことができます。

現時点でプライベートリソースファイルを持つのは Natural ダイアログのみです。このファイルは、ダイアログに定義され、独自のプロパティページで構成される ActiveX コントロールのコンフィグレーションを保存するために使用されます。

プライベートリソースの例

ダイアログ MYDLG のプライベートリソースファイルの名前は MYDLG.NR3 になります。

ダイアログの作成、修正、削除などが行われると、Natural では必要に応じてこのファイルが自動的に作成、修正、削除されます。

プライベートリソースファイルは、ダイアログ MYDLG に関連するバイナリデータを保存するために使用されます。

リソースを処理する API

ライブラリ SYSEXT には次のアプリケーションプログラミングインターフェイス(API)が存在し、ユーザーアプリケーションはこれを使用してリソース独自のユーザー出口ルーチンにアクセスできます。

API 機能
USR4208N ショートネームまたはロングネームを使用して、リソースの書き込み、読み取り、削除を行います。