第5章 PowerCOBOLを使いこなそう
5.1 プロジェクトの便利な機能
本節では、プロジェクトを編集する場合に活用できる、便利な機能について説明します。
5.1.1 外部ファイルを使う
PowerCOBOLのモジュールには、フォームの他に、実行可能プログラムを作成するためのファイルを追加できます。これらのファイル
は、PowerCOBOL以外の環境で作成したファイルであるため、外部ファイルと呼びます。
外部ファイルとは
外部ファイルとは、以下のファイルです。外部ファイルとしてモジュールに追加することにより、ビルド時に翻訳やリンクの対象となりま す。
COBOLファイル
COBOL手続きが記述されているCOBOLのソースファイルです。拡張子は、COB、CBLまたはCOBOLです。ただし、COBOLファ イルのプログラム形式は、行番号付きの可変長形式にしてください。ビルド時には、翻訳の対象となります。
オブジェクトファイル
COBOLコンパイラによって作成されたオブジェクトファイルです。拡張子は、OBJです。ビルド時には、リンクの対象となります。
ライブラリファイル
リンカによって作成されたライブラリファイルです。拡張子はLIBです。ビルド時には、リンクの対象となります。
リソースファイル
以下の各形式で作成されたイメージ用のファイルです。ビルド時には、リンクの対象となります。
リソースファイルは、フォームやコントロールでリソースを使用する場合に必要です。ビットマップやアイコンなどのイメージファイルを 追加したときにデザインツリーウィンドウに表示される名前がリソース名になります(プロパティリストウィンドウのNameと対応していま す)。イメージをリソースファイルとして追加することで、イメージは実行可能プログラムに組み込まれます。したがって、実行可能プ ログラムのサイズは、その分大きくなります。しかし、実行時には、ファイルの有無やパスの設定などを気にすることなく、利用できま す。
ファイルの種類 拡張子
ビットマップファイル BMP
アイコンファイル ICO
ポインタファイル CUR
アニメーションポインタファイル ANI
イメージリストファイル BMP
ポイント
イメージリストとは、1つのビットマップの中に、等幅のイメージを横に複数並べたものです。各イメージの幅は、イメージリストのプロ パティで設定できます。イメージリストは、ツールバーコントロールやツリービューコントロールなどで、複数のビットマップを利用する ような場合に必要となります。使用例については、「8.7 ツールバーを使ったアプリケーションを作成する」を参照してください。
注意
イメージリストとして利用するファイルは、16色ビットマップとして作成してください。16色を超えている場合、実行時に自動的に減色
(マッピング)されます。
外部ファイルを追加するには
外部ファイルは、以下の手順でモジュールに追加することができます。
1. デザインツリーウィンドウで、外部ファイルを追加するモジュールを選択します。
2. ポップアップメニューの[ファイルの挿入]コマンドを選択します。
3. 表示された[ファイルの挿入]ダイアログボックスで、追加する外部ファイルを選択します。
COBOLファイルを編集する
モジュールに追加したCOBOLファイルは、PowerCOBOLの手続き編集ウィンドウを使って編集できます。手続き編集ウィンドウは、
COBOLファイルを選択し、ポップアップメニューの[編集]コマンドで表示できます。
リソースファイルの使用例
リソースファイルは、以下のように利用することができます。
フォームのアイコンの設定例
PowerCOBOLが提供しているサンプルプログラム"Icon\Icon.ppj"を参照してください。このサンプルプログラムでは、以下の操作に より、フォームのアイコンを指定しています。
1. 3つのアイコンファイルをそれぞれ"bomb"、"clock"、"color"というリソース名で、モジュールに追加します。
2. フォームのプロパティを開き、リソースタブを選択します。
3. [プロパティ名]から、"IconName"を選択します。
4. [リソース名]から、モジュールに追加したアイコンファイルのリソース名を選択します。
この指定により、このアプリケーションを起動したときのフォームのアイコンは、"bomb"という名前で追加したアイコンが使用されま す。
また、オプションボタンコントロールのClickイベントで、フォームのIconNameプロパティに、アイコンファイルのリソース名を転記する ことにより、実行時にアイコンを変更することができるようになっています。
注意
COBOLの実行環境情報によるアイコンリソースの指定(@IconDLL、@IconName)で、フォームのアイコンを設定することはできま せん。
アニメーションコントロールのイメージの設定例
PowerCOBOLが提供しているサンプルプログラム"Animation\Animation.ppj"を参照してください。このサンプルプログラムでは、以 下の操作により、アニメーションで使用するイメージを指定しています。
1. モジュールに、8つのビットマップファイルをそれぞれ"Bitmap1"~"Bitmap8"というリソース名で追加します。
2. アニメーションコントロールのプロパティを開きます。
3. スタイル中の[リソース]をチェック状態にします。
4. [フレームリスト]の右側にある挿入ボタン(+ボタン)をクリックします。
5. [フレームリスト]中に、ビットマップファイルのリソース名"Bitmap1"を記述します。
6. 同様の操作により、"Bitmap2"~"Bitmap8"を[フレームリスト]に追加します。
5.1.2 テンプレートを追加する
PowerCOBOLで新規にプロジェクトを作成する場合、[標準フォーム]、[標準ダイアログ]および[ActiveX]という3つのテンプレートが 用意されています。これらの他に、あらかじめ作成しておいたプロジェクトファイルをテンプレートとして追加できます。
以下の操作により、作成したプロジェクトファイルをテンプレートとして使用できます。
1. プロジェクトウィンドウの[ツール]メニューから[オプション]コマンドを選択します。
2. オプションのプロパティ設定ダイアログボックスで、[プロジェクト]タブの[テンプレートフォルダ]を指定します。
3. OKボタンをクリックします。
4. Windowsのエクスプローラなどで、テンプレートとして作成したプロジェクトファイルを、[テンプレートフォルダ]で指定したフォル
ダへコピーまたは移動します。
プロジェクトのオプションについては、『リファレンス』を参照してください。
5.1.3 Unicodeを利用する
PowerCOBOLでは、実行時のコード系をUnicodeで扱うアプリケーションを作成することができます。実行時のコード系は、以下の操作
により変更できます。
1. デザインツリーウィンドウのプロジェクトを選択します。
2. ポップアップメニューの[プロパティ]コマンドを選択します。
3. プロジェクトのプロパティ設定ダイアログボックスで、[ビルド]タブを選択します。
4. [ランタイムコードセット]から"1 - UTF16,LE"または"2 - UTF16,BE"を選択します。
5. OKボタンをクリックします。
ランタイムコードセットは、COBOLコンパイラのRCS(実行時コード系の指定)オプションに相当し、実行時のコード系をシフトJISコード ("0 - SJIS")にするか、Unicode("1 - UTF16,LE"または"2 - UTF16,BE")にするかを指定することができます。
Unicodeについての詳細は、『NetCOBOL ユーザーズガイド』を参照してください。
注意
・ ランタイムコードセットがUnicode("1 - UTF16,LE"または"2 - UTF16,BE")である実行可能プログラムと、シフトJISコード("0 - SJIS") である実行可能プログラムを混在させ、1つのアプリケーションとして実行させることはできません。
・ ランタイムコードセットをUnicode("1 - UTF16,LE"または"2 - UTF16,BE")にした場合、V3.0以前に使用していたアイテムの属性名 およびCALL文によるメソッドの呼び出しを使用することはできません。使用した場合、ビルド時にエラーとなります。
ランタイムコードセットをUnicode("1 - UTF16,LE"または"2 - UTF16,BE")にする場合には、「7.2 プロパティへのアクセス方法」およ び「7.3 メソッドの呼び出し方法」に記載されている記述形式を使用してください。
5.1.4 ユーティリティを利用する
PowerCOBOLでは、以下のユーティリティを提供しています。
・ 検索ユーティリティ
・ 置換ユーティリティ
ユーティリティは、ポップアップメニューの[ユーティリティ]サブメニューから対象となるコマンドを選択して利用します。
検索ユーティリティ
検索ユーティリティは、プロジェクト、モジュールまたはフォーム単位で手続き中の文字列を検索できます。検索ユーティリティについて は、『リファレンス』を参照してください。
注意
検索後に手続きを変更した場合、検索結果と実際の文字列の位置が一致しない場合があります。
置換ユーティリティ
置換ユーティリティは、プロジェクト、モジュールまたはフォーム単位で手続き中の文字列を置換できます。置換ユーティリティについて は、『リファレンス』を参照してください。
注意
置換後に手続きを変更した場合、置換結果と実際の文字列の位置が一致しない場合があります。