DataGrid と ListView Object の使い方について


二次元配列の可視化で有名なのがエクセルなど表計算( SpreadSheet )、いわゆる「表」です。

ListView_Object_screenshot

ではこの「表(あるいはグリッド)」を MMF/CF25 で実装するためにはどうしたら良いかを考えます。今回記事の元ネタは CT Forum であった質問と回答、それを元に記事として再構成してます。

エクステで解決(一番簡単な方法

DataGrid と ListView を使えばとても簡単にアプリケーション中に「表」を挿入できます。

DataGrid+ListView_icons

DataGrid はややトリッキーな部分があり慣れるまでイライラ、コラムとラインの作成順を間違えると思ったとおりに表を作ってくれないなど少々扱いが難しい。データのソート(データの並び替え)に対応、サーチ機能はありません。

ListView は DataGrid よりも素直に扱える。標準でソート(データの並び替え)とサーチ(データから検索)機能が使えます。

両方共表示されたデータに対してはソートが使えるためデータの並び替えなどが簡単。表示された情報をセーブデータとしてそのまま保存したりファイルからロードしたりもできます。それぞれかなり高機能なエクステです。

共通した弱点

Windows API に依存しまくっているため PC Build 専用、エクスポータで利用ができません。

もうひとつの弱点はライセンスに Developer 版以上が必要となる点。

スタンダード版は非常にコストパフォーマンスの高い製品として知られ実際オススメなのですが、表を簡単に実装したい場合は Dev 版を買わないとね?ってなわけでして。

アプリでの動作例とか

MMF2 の頃、prester.org 名義で作ったアプリに QuadFreeCell 700 というものがあります。そこで戦績を表示するため DataGrid を利用しました。ここでは XLua と データベースに SQLite を使っています。

参考:ゲームのプレイ記録( QuadFreeCell:700 )

ファイルの読み書き

それぞれ独自形式のファイルヘッダーを持つ専用形式で「ファイル」としての保存と、ファイルから表への読み込みに対応しています。

DataGrid+ListView_file_context_menus

このセーブ・ロード機能では3つの形式をサポートしています。しかしあまり必要性を感じないため Load ASCII と Load from Array を筆者は試していません。独自形式の場合は日本語の表示、あるいは日本語を含めた表データの保存とファイルからのロードに対応していることを確認済み。

以下に動作サンプルを用意しました。後日各エクステの使い方について要点だけまとめた記事をブログにアップします。

サンプルファイル:DataGrid+ListView+StringTokenizer+List_working Exsample

本当は CT Forum に直接アプロードしたかったのですが、サイズの都合で自前のアップローダからアップしています。ファイルサイズは大体 4 MB くらいです。スタンダードしか持っていないユーザのためにビルド済みの実行ファイルを含めています。


Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です