このレッスンは、まだWindowsアプリを作ったことが無い人にはオススメです。 VSでのアプリの作り方が一応分かります。結構焦らされますけどね(苦笑
さて、このレッスンも相変わらず回りくどい。Visual Studioの使い方とか、狭い画面上でちまちまと解説されてもほとんど読む気がしない。手っ取り早く何か作らせろよ!っていうのが本音だ。一応基本的なところは読んだが、ようやく連載5回目で時計アプリを作ってみることになった次第である。
UIとコンポーネントを簡単に配置してリンクしてやるという手法は、もはやVisual Studioならではなんて言う時代でも無い。実際にAndroidアプリをApp Inventorで作った時は本当にプログラミングスキルなんか要らない位のレベルで簡易な計算ツールが作れた。
さて、この執筆者も実に回りくどい方法で解説してくれるものだからイライラするんだが、要するにWindowsアプリ用のプロジェクトをC#で作成するという準備をしてから、フォーム、ラベル、タイマーオブジェクトを配置し、タイマーオブジェクトが1秒毎にラベルの表示を書き換えていくというプログラムを組むだけの話。肝は言うまでもなくタイマーオブジェクトとラベルの連携をさせるところだと想像が付く。
ところがだ、プロパティを細かく指定されて変更させられたりじれったい。見た目なんか後から好みに変えてみたりするのでどうでも良い。とっととタイマーオブジェクトとラベル(デジタル時計表示)の連携の仕方を教えろよ!って言うのがジリジリと感じるストレスと共に思う事だ。普通そう思うよね?私がせっかちなだけかな?
しかし、よく考えてみると、「時計」アプリケーションを起動してから1秒が経過するまでは、時刻表示が更新されずに、先ほどのLabelコントロール
(「timeNow」オブジェクト)のTextプロパティで設定した「12時34分
56秒」が表示されてしまうことになる。そこで、Windowsフォーム(「Display」クラスのインスタンス)が起動したときにも、同じように時刻
表示の更新を行いたい。
いや、そんな事はどうでもええねん。とっととタイマーと時計表示(ラベル)をリンクさせる方法を教えろよ!って思う生徒(読みながら実践している人)は沢山いると思う。動いた後でそういう問題は改善すれば良いんだし、そもそもプログラミングの手順ってそういうもんだろ?ビギナーに100点を要求するなっつうの。と思った次第。
我慢して読み進めたら、どうやらアプリケーションが起動した直後のフォームのロード動作と、毎秒ラベル表示を更新して行く動作は全く同じなので、メソッドとして一つにしてしまおうというプログラマー的視点から伝えておきたい課題が有って焦らされたらしい。メソッドを呼び出す方法は全く同じ。分かってしまえば難しい事は無くて、なるほどこれでタイマーオブジェクトによってラベルが一秒ずつ書き換えられるわけか!
ようやくWindowsでアプリケーションらしいものが作れた。ちょっと感動だ!
長年プログラミングの勉強をアッチコッチ行ったり来たりしたけれど、一個もそれらしいモノを作ったことのない私の気持ち等他人にはわからんだろうな。ビギナーが求めているのはまさにコレなんだよ。ビギナーに教える際は、細かい解説なんか後からで、どんどん先に進めていくのが正しいと経験上思う。
見た目もこんな風にしてみた。ブログのヘッダー画像を配置してみただけだがなんとなく嬉しいから不思議なものである。



コメント