|
ここはとあるソフトハウスの総務部総務課。昼下がり、暖房のきいたオフィスでびぎなちゃんがコクリコクリと居眠りしてると、いきなり脳天に衝撃が走りました。 |
|
|
|
まにあ 「なに、勤務中に寝てんねん!」
|
|
|
|
びぎな 「目をつぶって考え事をしてただけなの……」
|
|
|
|
まにあ 「ほな、何か素晴らしいことでも考え付いたんか?」
|
|
|
|
びぎな 「達人になる方法考えてたら、答えを考え付く前にまにあちゃんに邪魔されたの……」
|
|
|
|
まにあ 「そんなん考える必要あらへん! 達人になるには実践の積み重ねがすべてや。びぎなちゃんのダイエット脳味噌で考えても楽できる方法なんか出てくるかいっ!」
|
|
|
|
再びびぎなちゃんの脳天に衝撃が走りました。まにあちゃんの手にはコピーの裏紙を折り重ねて作ったハリセンが握られています。 |
|
|
|
びぎな 「痛いよぉ……」
|
|
|
|
まにあ 「今回は概要設計の続きや。前回は大まかな処理操作の流れを考えたから、それらの個々の処理の中身を考えていこか。Windowsのアプリの基準はイベントドリブンや。ユーザーが何か操作を行ったら、それに対応してソフトが処理を行っていくという形やな。マルチタスクの仕組みはこのイベントドリブンの他にもあるけど、何かわかるか?」
|
|
|
|
びぎな 「ワークシェアリング……」
|
|
|
|
まにあ 「アホ、誰が不況時の雇用対策の話せぇってゆーた! マルチタスクのもう一つの仕組みはタイムシェアリングや。イベントドリブンはイベントがあった時だけそのタスクの処理をして、何もないアイドル状態の時に他のタスクの処理が動く仕組みで、タイムシェアリングはOSが時間毎に処理を行うタスクを強制的に切り替える仕組みや。Windowsにもタイムシェアリングの仕組みはあるけど、アプリの構造がイベントドリブンなのは昔の名残やな」
|
|
|
|
まにあ 「Windowsアプリの構造がイベントドリブンということは、ユーザーの操作それぞれに対して個々に処理していく必要があるのね」
|
|
|
|
まにあ 「そうゆーことや。せやから、前回はユーザーの操作手順の視点から考えたわけやけど、その操作それぞれについてソフト側の処理を考えるんや。最初は何やった?」
|
|
|
|
びぎな 「背景画像の読み込み……」
|
|
|
|
まにあ 「これ、ソフト側の処理はどうすればええかわかるか?」
|
|
|
|
びぎな 「ボタンが押されたら、ファイル選択のダイアログを開いて背景画像を読み込むの」
|
|
|
|
まにあ 「それは機能説明の段階や。もっと具体的に何をするかが明確やあらへんと設計にならへんで」
|
|
|
|
びぎな 「そんなこと言われたって……」
|
|
|
|
まにあ 「ほな、視点を変えてみよか。画面設計のところにファイル名の表示欄とか画像の表示領域があるけど、これらの表示はいつやるんや?」
|
|
|
|
びぎな 「画像ファイルを読み込んだ時……」
|
|
|
|
まにあ 「ユーザー視点で見ればそうやけど、画像ファイルを読み込んだだけで勝手に表示とかはしてくれへんで。ソフトがちゃんと表示の処理を行わなあかんのや。ついでに、ファイルダイアログを開いたからって、それだけでは画像ファイルは読み込まれへん。これはあくまでファイル名を選ぶだけやからな」
|
|
|
|
びぎな 「じゃあ、ファイルダイアログを開いて画像ファイルの名前をもらうの。そのファイル名で画像ファイルを読み込んで、それからファイル名を表示して、背景画像を表示するの」
|
|
|
|
まにあ 「ファイルダイアログでユーザーにキャンセルされたらどうするんや?」
|
|
|
|
びぎな 「……」
|
|
|
|
まにあ 「そういう場合は何もせずにスルーでええやろ」
|
|
|
|
びぎな 「次はキャラクター画像の読み込みね。これも同じようにボタンを押されたらファイルダイアログを開いて画像ファイルの名前をもらうの。そのファイル名で画像ファイルを読み込んで、それからファイル名を表示して、キャラクター画像を表示するの」
|
|
|
|
まにあ 「ま、そんなところやろ」
|
|
|
|
びぎな 「次は背景色の選択。ボタンが押されたら……あ、あれ? どうやったらいいかわからないよぉ……」
|
|
|
|
まにあ 「ま、一番難しいところやな。前回の処理手順には入ってないけど、ここでワンアクション手順が必要や。マウスでクリックしたところの色を選ぶわけやから、マウスクリックでワンアクションやな。最初のボタンではその準備の処理をするんや」
|
|
|
|
びぎな 「準備?」
|
|
|
|
まにあ 「マウスがクリックされたらいつでも背景色を選択するいうわけやあらへんやろ。ボタンを押してからに限られるようにするんや。ま、細かい処理内容は後でええやろけど、背景色の選択中は他の処理は無効にしといた方がええやろ」
|
|
|
|
びぎな 「ボタンを押されたら、背景色の選択の準備をして他の処理は無効にするの。それから、キャラクター画像の上でマウスクリックされたらその座標の色を背景画像にして、その色を表示するの」
|
|
|
|
まにあ 「マウスクリックしたくなくなったらどうするんや? ま、背景色の選択ぐらい何度でもやり直しできるから、とにかくどんな色でもクリックして終わらせるって手もあるけど、あんましユーザーに優しいとは言えへんな」
|
|
|
|
びぎな 「さぁ……」
|
|
|
|
まにあ 「ボタンをトグルにして、選択中に押した場合は中断するとか、左クリックは選択やけど右クリックは中断やとか、やり方はいろいろあるけど……」
|
|
|
|
びぎな 「ボタンをトグルにするの」
|
|
|
|
まにあ 「せやったら、その時の状態に応じてボタンの表示も変えやなあかんで」
|
|
|
|
びぎな 「背景色の選択中は『中断』にして、選択や中断で終わった時に元に戻すの」
|
|
|
|
まにあ 「最初に無効にした他の処理を元に戻すのも忘れたらあかんで。ほな、次に行こか」
|
|
|
|
びぎな 「次は画像の合成処理。ボタンが押されたら、背景画像とキャラクター画像を合成して、その結果を表示するの」
|
|
|
|
まにあ 「ここがこのソフトの肝やからコーディングの分量が一番多いとこやろうけど、処理概要としてはそんなとこやろ」
|
|
|
|
びぎな 「最後は合成結果の保存。ボタンが押されたらファイルダイアログを開いてファイル名をもらって、合成した画像データをファイルに保存するの」
|
|
|
|
まにあ 「で、クローズボタンを押してアプリを終わる時は?」
|
|
|
|
びぎな 「終わる時?」
|
|
|
|
まにあ 「アプリによっては設定データを変更したとか、編集したデータが保存されずに残ってるとかいう時にはそれなりの終了処理が必要や。自動的にデータを保存するとか、このまま終了していいか確認するダイアログを出すとか。ま、このソフト程度やったら合成結果を保存しないまま終わってしまってもそんなに痛手やあらへんやろうから、何もせずに終わるのもアリやけど」
|
|
|
|
びぎな 「じゃ、そのまま終わるの」
|
|
|
|
まにあ 「ほな、次回は今回抜け落ちてたところを詰めていくから、びぎなちゃんは今回のところをフローチャートにまとめときや」
|
|
|
|
びぎな 「もう定時なのに……」
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(つづく)
|