- 作品名:
- 「ウチの子、ナン分?」
- 作者名:
- はりまお
- 制作環境:
- Core i7-4770 3.40GHz + 8GB RAM
- Windows 10 Pro (1607,64bit)
- 開発言語:
- Visual Studio Community 2015 (Update 3)
- Visual Basic 2015
- WPFアプリケーション
- 動作環境:
- .NET Framework 4.5.2
- 形態種別:
- フリーソフトウェア(ソース公開)
名前 | バージョン | 概容 |
---|---|---|
Nuke2.exe | 2.3.0.3 | 実行ファイル |
readme.txt | 説明文(本文) | |
CreateNote.txt | 制作履歴 | |
MwOven_Converter | ソース収録フォルダ(削除可) |
名前 | 概容 |
---|---|
Resume.xml | 記録ファイル |
冷凍食品などのパッケージに記載されているワット数と加熱時間から、使用している電子レンジのワット数に合わせた加熱時間に換算します。
拙作「電子レンジ 加熱時間コンバータ」をリメイクしたもので、機能的な違いはありません。
本作を使用するためには、『.NET Framework 4.5.2』が必要です。【○参考・引用文献/拝借物】に挙げたサイトを参考に、導入しておいてください。
.NET4.5.2を導入できない旧OS環境では、「電子レンジ 加熱時間コンバータ」を使用してください。
インストールするには、ダウンロードした圧縮ファイルを、新たに作成したフォルダに解凍してください。
アンインストールは、インストールしたフォルダごと全て削除するだけです。
レジストリの変更や、インストールフォルダ以外へのファイル作成は、一切行っていません。
"Nuke.exe"をダブルクリックすれば、起動します。終了するには、ウィンドウの右上にある
終了時のワット数と解凍時間が、次回起動時に復元されます。
スライダを使って、指定されているワット数と加熱時間、そして使用している電子レンジのワット数を入力すると、換算した加熱時間が表示されます。
※このソフトで得られた加熱時間は、単純な計算によるもので、美味しく解凍できることを保証するものではありません。あしからず。Ver.2は、プログラムの全面改訂となりましたが、それはVer.1からの機能強化を志向したものではなく、WPFによる制作のテストケースとして企画しました。
当初の予定では、“カラリスト 色見 本子”のリメイクをWPF処女作とするつもりでしたが、挑戦を開始して早々にWPFの奥深さ(Windowsフォームとの隔たりの大きさ)に愕然とし「もっと簡単な題材で基本のキから試行錯誤しなければ」と思い直して、XAMLにデータバインディングとコンバータだけでほぼ完結しそうな本作にお鉢が回ってきたわけです。
配布ファイルに、ソース類も収録しています。興味があれば、煮るなり焼くなり好きに弄り倒してください。もちろん不要であれば、サクッと削除してもらって結構です。
終了時のワット数と解凍時間が、"Resume.xml"という名前で実行ファイルと同じフォルダに保存されます。このファイルは、UTF-8(BOM無し)のXMLです。
変換式は下記の通りです。極めて単純な式なので、取り立てて言うこともないです。
変換した加熱時間の文字サイズが、ウィンドウの寸法に合わせて調整されます。
Windowsフォームで同じことを実現しようとすると、表示する文字数と領域の寸法から表示可能なポイント数を算出し調整するといった面倒な手続きを要します。それがWPFでは、Viewboxコントロールを使うだけで自動的に拡大縮小してくれるのです。簡単便利。
電子レンジのワット数って、各社バラバラですよね。冷凍食品に書かれているワット数もバラバラ。しかも、使用できるワット数と指定されるワット数は、なぜか噛み合わない。これって、なにげに冷凍食品の面倒事第一位だと思う。
そんなモヤモヤが渦巻いているとき、時間計算機能を搭載した電卓が我が家に転がっていたので、何となぁ〜くワット数と時間を掛けたり割ったりゴニョゴニョしてチンしてみたわけ。まぁ、数学はおろか算数にも弱く電気にも縁遠い作者のやること、そりゃもうテキトウな計算です。ところがどっこい、イイカゲンな計算でも良い加減に解凍できてしまうもんだから、「あながち遠い答えではないんやろなぁ」と、自分で自分に感心しちゃったりして。
そんなある日、ネットの海でたまたま漂着したシャープのサイトに、衝撃の光景が広がっていたのです。ナナなんと、あの勝手計算式と同じものが掲載されているじゃないの…ぷぷぷ(^^♪、いやぁビックリ。
些細な喜びを噛み締めながら幾多の日々を過ごした、ある昼下がり。電子レンジを買い替えてみたら(Panasonicの単機能)、切り替えられるワット数が増えている。最も汎用性が高いであろう“500W”が選べるようになっている。ショ〜ック!! 大して高くもない鼻を見事にへし折られたよ、(;´д`)トホホ。いや待て待て、高ワット数で解凍時間を短縮できることにも意味があるはずだ、ウンウン。
こんな感じの自問自答を何年も前にしたような気がするなぁと、なぜかフッと思い出したので、とりあえず備忘録的にアプリに仕立ててみたってのが事の始まり。こんな計算、電卓があれば(時間計算機能付き電卓ならなおのこと)ちょちょいのチョイで、こんなアプリ無用の長物ですけどね。何を仰るウサギさん、電卓を用意させるより、スマホのアプリにした方がよっぽど実用的やわって、スマホ持ってねぇ〜よ、ギャフン。(ネットで検索してみたら、既に同種のアプリが存在しているようです。見なかったこと、見なかったこと。)
メイン環境が、解像度を制作者側で選択できるMSXから、利用者側に決められてしまうWindowsに移行して以来、ずぅ〜っと抱えていた課題、それが“スケーリング”。
されど、自分が創るような矮小プログラムで(もちろん自分の能力的にも)この問題を扱うには、荷が重すぎていかんともしがたい。だからと言って『モバイル機器の興隆』だの『SD→HD→FullHD→4K→8K』だのと、画面サイズと解像度を決め打ちすることがどんどん難しくなっていくばかり。拙作“HELuPER!”や“SCOrPio”の制作を通して「Windowsフォームはそろそろ限界かなぁ。せめて高DPI対応ぐらいは何とかしないとダメかなぁ」と、思ってしまったわけです(いや、“迷図”にこそスケーリング機能がないとステージを進めていけないのは分かっていたのだよ)。
で、「高DPI、Per-Monitor DPI、もしかしたらUWP…なんて考えると、とりあえず“Windows Presentation Foundation”かなぁ」と…。システム側で色々世話を焼いてくれるみたいやしね。
そんなこんなで今回、WPFを独習してみたら、近年の日曜プログラム環境の厳しさを痛感させられてしまった。
まず、手頃な独習教材が見当たらないこと。個人の情報発信の主流がSNSやBLOG等へ移り変わって、『わかっている人の備忘録』的な情報が単発で散発されてしまい、まとまった形でのリファレンスが形成され難い。初心者には非常に辛い。
また、SNS的技術共有サービスによってノウハウが囲い込まれてしまったのか、この手のコミュニティとつながっていない場末の下手の横好きプログラマの所まで漏れ伝わって来る情報量が激減しているように感じる。
それに、何とかかき集めた情報も、そのほとんどがC#で記述される始末。絶滅危惧種なVB (´Д⊂グスン ← これは、作者の特殊性が災いしているな。これを機に、「C#に転向すればいいやん」と言われればそうなんやけど、どうもC系の文法って好きになれなくて(性根からBASICに染まってやがる)。
もちろん、こんなヘッポコ相手の書籍など望むべくもない。数少ない存在である小難しそうな書籍は、高嶺の花。そもそも理解できるかさせえ怪しい。
小学校でプログラム教育をなんて時代に、これで良いのかね? Scratchを卒業した後、どこへ行くのだろう? えっ自分がリファレンスを書けって? そんな能力があったら、こんな所でぼやいてませんて。
ところで、作者の作風でもある“2D画像を動的にガシガシ描画する”プログラムは、WPFでは想定外なのかな? Windowsフォームのグラフィック メソッド(GDI+ってやつ)って簡単に色々できたのに。イヤイヤ何かあるでしょと必死のパッチで検索した結果、"WriteableBitamp"なる存在までは突き止めた。けど、その具体的な用法・用例が全くもって掴めず二進も三進もいかん。
こんな具合に、WPFには新機能が追加されている反面、Windowsフォームで便利に使ってい機能が少なからず葬り去られている。同じ.NET Frameworkの仲間なのに。インテリセンスのヒントやMSDNの文章が解り辛くなった(ただでさえマイクロソフトが書く文章は難解なのに)のも玉に瑕。これが時流? はたまたマイクロソフトによる開発の進展によって解消される問題? それともWPF上でWindowsフォームの部品を使えってこと? はてさて、マイクロソフトの真意は、いずこ???
初めてのWPFは、まるで「異なる文化・複数の言語が入り混じる多民族国家」のような感じ(とはいえ、ルールがハッキリしているので一つの自然言語を習得するより遥かに易しいけどね)。かつてMSXで夢見た“プログラミングが平凡になる(難しいことを可能にするのではなく、難しかったことを簡単にするために高度な技術を使う…えっ(O_O;)、その成果がWPFだって!?)”ってな日が、いつかやってくるのかねぇ。
コマンド | 概要 | n |
---|---|---|
/DEFAULT | 記録ファイルを初期化します。 | |
/SW=n | 起動時の指定ワット数を設定します。 | n=100〜2000 |
/TW=n | 起動時の使用ワット数を設定します。 | n=100〜2000 |
毎度、有難う御座います。大変お世話になりました。