NS Basic/Palm 7.0.0

2009/01/28


2006年の11月にリリースされたNS Basic/Palm(以下、NSB)のVer.6.0から2年以上経ちましたが、久しぶりのメジャーバージョンアップ版「7.0.0」がリリースされました。
その間にPalmを取り巻く情勢はいろいろと変わりましたが、ユーザーの間でもVer.6でもう打ち止めかと思っていたところでのバージョンアップ。
さて、どんな機能が追加されたんでしょうか?
いくつかの新機能を紹介しましょう。
※画面のキャプチャは、開発評価版当時のものです。正式版とは異なる場合があります。

  • 新規購入:$149.95(シングルユーザー版)
  • アップグレード:旧バージョンユーザー限定
    • ダウンロードのみ:$49.95
    • アップグレード+ハンドブック:$69.95
    アップグレード:http://www.nsbasic.com/orderupgradepalm.shtml
    ※2008年12月1日以降の購入者は無償アップグレードとなるようです。


■カラーテーマがサポートされました

 モノクロPalmは、正式ラインナップから姿を消し、基本的に最下位グレードのZ22でもカラーがサポートされたPalmデバイス。
標準で「Color Theme」がサポートされましたが、NS Basicアプリにも同じような仕組みが導入されました。
一見すると、あまり変わっていないようなIDEの画面ですが、よく見るとプロジェクトに「Theme」というプロパティが追加されました。
ここで「...」をクリックするなどして、ファイル読み込みのダイアログを開くと、カラーテーマファイルを選択する事が出来ます。
これは、標準で用意されているテーマです。
NS Basic/Palmのソースファイルは、NS Basic/Symbianとの互換がありますが、では、ここでカラーテーマ「Symbian」を選択してみましょう。
読み込まれると、直ちにIDE画面に反映されます。
実機に馴染みがないので、直ちには分かりませんが、おそらくこういう色かイメージなのでしょう。
これをコンパイルした場合、実機上では実機の設定とは無関係に、色の設定が適用されます。
例えば、カラーテーマ「Velvet」に設定してあるPalmです。
「Symbian」のカラーでコンパイルした「Project1」を実行すると、こんな画面になります。
もちろん、この設定は、このプログラム内に限った事なので、プログラムを終了すれば元のカラーテーマに戻ります。
尚、カラーテーマは、それぞれが1つのデータベースになっており、コンパイル時にリソースとして組み込まれます。
ファイルのサイズ自体は小さいですが、それぞれが本体に残る事は知っておいた方が良いでしょう。

また、テーマカラーはカスタマイズする事が出来ます。
「ツール」の「テーマエディタ(Theme Editor)」を使えば、それぞれの色の設定が可能です。
オリジナルカラーを作って、シリーズで統一したカラーを使うなど、見た目の統一を図るのも良いでしょう。
ただ、先述したようにテーマカラーのファイルはそれぞれ本体内にインストールされます。
オリジナルカラーを作る場合、人と重複しないであろう名称を用いるのが妥当かと思います。

尚、日本語版のリファレンスに反映されていないかもしれませんが、プログラム中でテーマカラーを指定する関数も用意されています。
    機能
      テーマ文字列で指定したカラーテーマを適用します。
    書式
      SetTheme(テーマ文字列)
      Dim result as Integer
      Result = SetTheme("Classic")


■画像ファイルがIDE上に表示されます

 単なる四角形だったBitmapオブジェクトですが、選択した画像がIDE上に表示されるようになりました。
それに伴って「Picture」プロパティが新設されました。
今までのバージョンでは、画像を表示するためには、次の方法が採られていました。
  1. Bitmapオブジェクトを用意
  2. 画像を追加
  3. BitmapオブジェクトのBitmap IDプロパティに画像のID番号を指定する
新設のPictureプロパティを使えば、
  1. Bitmapオブジェクトを用意
  2. BitmapオブジェクトのPictureプロパティに画像を指定する
という方法で簡易に画像を表示できるようになります。
読み込んだ画像に応じて、自動的にサイズが調整されますが、StretchプロパティをTrueにすることで、自由にサイズを変える事が出来ます。


■Bitmapオブジェクト:グラデーションカラーが指定できます

 画像が直接表示できるようになっただけではなく、Bitmapオブジェクトを彩色し、かつ、文字を表示する事が出来るようになりました。
どういう事かといえば、こういう事です。
Gradient Color1プロパティとGradient Color2プロパティを使って、グラデーション画像を作ることが出来、さらにCaptionプロパティなどを使えば、文字を表示し、立体ボタンのように表示する事も可能です。
この辺りは、プロパティ名でおおよそ判断できると思いますので、詳しい説明は省略します。


■Bitmapオブジェクト:注意する事【要注意!】

 色々と便利になったBitmapオブジェクトですが、Pictureプロパティを使った場合、残念な事に「解像度」について難があるようです。
Palmは、基本的に「160x160ピクセル」を基準とする、いわゆる「ローレゾ」のデバイスと、「320x320ピクセル」を基準とする「ハイレゾ」のデバイスが混在していますが、それらに対して適切な解像度で画像を用意するのは難しく、全てのデバイスに対して適切なサイズで用意されるとは限りません。
先に理屈を並べると納得していただけると思いますが、従来のBitmap IDプロパティを使って画像を表示させる方法では、必要な場合、それぞれの解像度に対応する画像を用意する必要がありました。
それに比べて、Pictureプロパティを使った場合、1種類の画像を用いるだけなので、ローレゾ用とハイレゾ用の両方が適切に用意されない、という欠点があります。

例えば、グラデーションなどを使うと、こんな画面をデザインする事が出来ます。
何となく「今風のスマートフォン」といったデザインですが、これをローレゾデバイスである「Z22」で実行すると、こうなってしまいます。
ボタン上の文字などは、無理に画像を縮小した形になって読む事が出来なくなっています。
針金人間なのでアレですが、実際、画像の解像度も保証できないようです。
ただし、画像のサイズは正確に反映されるので、解像度さえ気にしなければこちらの方法を使うのは問題ないでしょう。
ただし、Palm OS4が載っている「PalmOS Emulator」で実行すると、サイズ情報も曖昧になってしまうようで、結果が正しくわからなくなります。
この辺り、実機で試した方が賢明なようです。

尚、従来のBitmap IDプロパティとPictureプロパティを併用した場合、Bitmap IDプロパティの方が優先されます。

また、扱う事の出来る画像サイズには以下のような上限があり、それ以上になると切り捨てられます。
    width * height * bitdepth < 65512
画面左下の「Image Size:62400」などと表示されるので、おおよその目安が分かるかと思います。

その他、Pictureプロパティで指定した画像は、NS Basicのデータフォルダ(標準インストールの場合 C:\NS Basic\ )のBitmapsフォルダ内に、自動的にプロジェクト名でのフォルダが作られ、自動的にビットマップファイルのコピーが作られます。
まとまっているので、ドキュメント類を書く時に使うと便利かもしれません。



■プロジェクトファイルのフォーマットが変わりました【要注意!】

プロジェクトファイルの書式が若干変更になりました。
上位互換性は保たれているので、以前のバージョンのプロジェクトファイルを開くことは可能ですが、新しいバージョンで保存したプロジェクトファイルは、以前のバージョンで開く事が出来ません。
また、NS Basic/Symbian のプロジェクトファイルも直接開く事が出来ます。



■アイコンが変わりました

 細かい事ですが、アイコンの色が変わりました。



■NSDictLibが追加されました

 「見出し語」−「値」の組み合わせを簡単に扱う事が出来る「NSDictLib」というライブラリが追加されました。
これはプログラム中で「辞書」のような機能を実現するライブラリで、テクニカルノート No.42に詳細が掲載されています。
基本的に、プログラム実行中だけ使える一時的な辞書機能ですが、基本的な機能についてはC:\NSBasic\Projects\Samples - Shared Libraryフォルダにある「Dictionary.prj」が分かり易いので、そちらを参照して下さい。



■ランタイムファイルの場所が変わっています

 今までは、例えば「C:\NSBasic\Download」にありましたが、新しいバージョンではプログラム(NSBasic.exe)があるフォルダ内の「BuildTools」フォルダに収められています。



■その他色々

リリース情報です。
    開発支援
    1. "NS Basic Programming for Palm OS "(Verive氏著)のPDFが同梱されています。
    2. 各種リファレンスが更新されました(一部言語のみ)
    開発環境
    1. ビットマップ画像がデザイン画面上に表示されるようになりました
    2. デザイン画面は選択中のテーマカラーを表示します
    3. 外部からの操作に対して10秒後にタイムアウトになります
    4. 各プロパティのファイル選択画面は、デフォルトプロパティを変更しません
    5. 他のフォルダにプロジェクトを保存する際「ファイルが見つからない」というエラーを修正しました
    6. グラデーションボタン&ラベルが作れるようになりました
    7. Bitmap IDが変更されると、プロジェクトファイル自体にも変更された事が伝わるようになりました
    8. ビットマップオブジェクト上の画像は自動的にサイズが調整されます
    9. イメージを開く際、デフォルトで「Bitmap」フォルダが選ばれます
    10. ボタンやラベルでは、フォントを選択して使えるようになりました
    11. リソースファイルは、絶対パスで表現されるようになりました
    12. いくつかのコマンドにおける文字色の問題を修正しました
    13. テーマエディタを追加しました
    14. GridやSliderのTooltipを表示するようにしました
    15. 新しい定数が追加されました:nsbIrCOMM,nsbRFCOMM,nsbBTCM
    16. NS Basic/Symbianのプロジェクトファイルを読み込むことが出来ます
    17. ショートカット「Ctrl-P」を追加しました。
    ライブラリ
    1. 辞書ライブラリ(NSDict.Lib)が追加されました
    ランタイム
    1. ARMランタイム上野Grid.TextMatrixの問題を修正しました
    2. SetTheme()関数を追加しました
    3. テーマカラーをサポートしました
    4. DBIMタイプのリソースが自動的にデータベースに保存されるようになりました
    5. ビットマップ全体がクリックできるようになりました
    6. 上層にあるオブジェクトがクリックイベントを取得します
    7. ARMランタイムでは、自動的に16ビットモードがセットされます
    サンプル
    1. BetterBitmap が追加されました
    2. GradientButtons が追加されました
    3. Derby が更新されました
    4. Dictionary が追加されました
    5. StockQuote が追加されました
    6. 共有サンプル名を修正しました
    シミュレータ
    1. "Storage Snapshot not found"メッセージを修正しました
    その他
    1. NSDictLicに関するテクニカルノート42 を追加しました
    2. TCPIPLibに関するチュートリアル09 を追加しました
    3. 画像に関するチュートリアル09 を追加しました。


     もう、完成の域かと思ってたNS Basic/palm 6.0でしたが、Ver.7.0が登場し、少々驚きました。
    画像の取り扱いについては、少々、ダイジョウブかな、と思う部分もありますが、不都合部分を理解して使う分には大きな問題ではないかと思います。
    テーマカラーのサポートが必要か不要かは、人によって評価が分かれるかもしれませんが、「シリーズ物」を作者オリジナルカラーで統一する事も楽しいかもしれません。
    日本における Palmの話題は、かなり下火になりましたが、まだまだ使えるぞPalm、と思っている人など「自分アプリ」に挑戦してみては如何でしょうか。

    mizuno-ami