« ちょっと修正^^; | トップページ | 39人 »

2009年5月11日 (月)

書覚単語ver1.0こぼれ話

書いて覚える単語帳のバージョンアップ、早速shino-jiさんNAS芹沢さんにご紹介頂き、どうもありがとうございました。というわけで、アプリをリリース後は恒例の、こぼれ話を。

今回の目玉は複数単語帳への対応だったわけですが、実はこの開発は2月頃に始めていました。ですが、引っかかったのはGridへのデータベースのバインドの部分。これについては、Around Palm:さんも書かれていますが、

Dim 変数名 as database データベースファイル名, 参照名, 構造名 [,キー項目用変数]

の部分で、データベースファイル名に変数が使えないという仕様が存在したのです。

Screenshotu0034_2 ちなみにNSBasicになじみがない方のために若干補足しますと、Gridというのはまあ、"表"のことでして、今回の書覚単語帳では、例えば登録単語の一覧画面で使っています。

で、この表と、単語帳データベースとを関連づけ(バインド)することで、この表の中にデータベースの内容が表示されます。例えば登録単語の一覧表示のところでは、単語帳データベース(kaiteDB.pdb)のデータを、Grid(表)と関連づけることで、左の画面のような表示が出来る、というわけです。で、この関連づけをするのに、先ほどのDim以下の宣言を用います。

単語帳を複数持った場合、当然この単語の一覧表も、現在選択している単語帳の内容を表示してあげる必要があります。具体的には、上記の宣言

Dim 変数名 as database データベースファイル名, …

の、「データベースファイル名」の部分を、選択された単語帳に応じて切り替えてやる必要があるわけです。ですが、なぜかNS Basicでは、この「データベースファイル名」のところに変数を用いると、エラーになってしまいます。

仕方がないので、「あらかじめ、単語帳の数を10個固定にしておいて、10個分のバインドをべた書きしようか」と思って実装しかけていたのですが、細かなバグとかも発生してちょっと放置しておりました。

そのときに、Around Palm:さんの天の声が。

NSBSystemLib の SetDatabaseName を使えば行けるかな??

正直、NS Basicのシステムライブラリについては開発中も全くノーチェックでした。調べてみると、どうやらデータベース名を変更することが出来るとのこと。

で、今回このヒントを元に、作り替えてみました。

先ほどの単語一覧表のGridにバインドするのは、"kaiteDB.pdb"という名前のファイルだけにします。それ以外の単語帳は、例えば"kaiteDB00001.pdb"とか"kaiteDB00002.pdb"いう名前にして置きます。

で、kaiteDB00001.pdbの単語帳に切り替えたい場合は、

  • 現在の単語帳kaiteDB.pdbを、元の名前(例えばkaiteDB00000.pdb)に戻す。
  • 切り替えたい単語帳kaiteDB00001.pdbの名前を、kaiteDB.pdbに変更する。

と言う処理を組み込んだのです。こうすることで、無事単語一覧表も、切り替えた後の単語一覧を表示することに無事成功^^。さらに、勉強する単語の抽出部分や単語の追加/削除部分の記述も、全て"kaiteDB"を対象にした記述がそのまま有効なので、一石二鳥でした。

まあ何でもそうですけど、こういうコミュニティ内での情報共有って、本当に助かります。NSBasicな皆さん、いつもどうもありがとうございますm(_ _)m

|

« ちょっと修正^^; | トップページ | 39人 »

コメント

ご苦労様です。
NS BasicのGridって便利なように見えてイマイチ融通が利かないというか、何で?と思うような事が多くて扱いづらいですよね。
DB名に変数が使えないのは勿論、フォームを移動するたびに再描画が何度も発生するのは何とかして欲しいです。

投稿: いなあも | 2009年5月11日 (月) 22時43分

>いなあもさん
あ、たしかにあの「ちらちら」はかなり鬱陶しいですねえ(>_<)
あと、Gridの右側にスクロールバーを表示させようとすると、表の右側にかなり大きいスペースを取らないといけないのも、不可思議な仕様ですよね。

投稿: MA-CY | 2009年5月12日 (火) 08時05分

こんばんは。
素人の独り言を拾っていただいてありがとうございます。なんか嬉し恥ずかしな感じですね。

投稿: txn-htn | 2009年5月13日 (水) 02時09分

>txn-htnさん
いやー、この天の声がなければver1.0はお蔵入りでした。本当にありがとうございましたm(_ _)m

投稿: MA-CY | 2009年5月14日 (木) 12時34分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/140067/44981759

この記事へのトラックバック一覧です: 書覚単語ver1.0こぼれ話:

« ちょっと修正^^; | トップページ | 39人 »