FC2ブログ

三角端。

Δ-sphere管理人三角区也による絵日記/ゲーム開発日記。コメントは右側のweb拍手からどぞー。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

データベース作成ツール

画像コンバートツールをある程度作り終えました。
結局PNGやDDSでゲーム側まで流したほうがいいんじゃないかというのが素直な感想。
また実際に使うときに考えます。





次はデータベースツールです。
それは、まあ、アイテムとかの性能とかのリストを作るためのツールです。
エクセルとかでつくってもいいんですが・・・
エクセルを持っていないのでそれだけのためだけに買うのはちょっと・・・ということで作ることにしました。
簡単なのだとカンマ区切りテキスト(CSV)とかでも表現できるんですが、規模が大きくなると大変なので・・・
あと、CSVだとカンマの扱いとかダブルクオーテーションとか例外処理が必要だったり、
エクセルの代わりに入れているOpenOfficeの表計算ツールがCSVを扱いにくいとかいろいろ不満な点があったりしてます。

GUIツールを作るのはC#を使うのが楽だという噂を聞いたのでVisualC#2010EEをインストール。
DataGridViewなるパーツでそれっぽいことができそうだったんで、適当に作ってみたのが下の画像。
screen_253.jpg

ここまでは簡単だったんですが、ここからが大変でした。
DataGridViewのデータの変更とか整形とかがよくわからんマンになっちゃいまして・・・(苦笑
VirtualModeにしていない場合はデータを作るのは簡単だけど、データの整形とかはできないので却下。

VirtualModeの場合はデータを自分で作らないといけないということで・・・
アプリケーションが表示列を要求するとき、CellValueNeededイベントで表示データを設定する。
ユーザーが編集を終えたとき、CellValuePushedイベントで内部データに反映させる。

ただ、DataGridViewには上の画像の最終行のように新規に追加するための行というものがあります。
その新規行をクリックしたりすると、その行が普通の行になり、新しく新規行が生成されます。

なので内部データのレコード数+1の行があるという状況になっています。
もちろん新規行でも表示文字列が必要なのでCellValueNeededイベントが発生します。
それを例外処理してデフォルト値を返却しておきました。
クリックしてデータが確定した瞬間に発生するイベントがあれば楽なんですけどねえ・・・
まあAddRowイベントを捕まえて内部データにも新規行フラグを付けておいてもいいのかもしれませんが・・・


長くなってきたんでデータ整形の話はまた次回気が向けば。
スポンサーサイト

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。