REALbasic かってに連載します(第8回)


 最近ようやくわかったことがあります、REALbasicのようなオブジェクト指向の最新言語の出現で、過去のBasicプログラミングのようなあっちに飛びこっちに飛びというスパゲッティープログラムとはやっと縁が切れると喜んでいましたが、まちがいでした。作るのは自分で、自分の頭がスパゲッティーであればなにを使っても結局同じだと言うことですね。やはり、目的のためには手段を選ばずという姿勢で作ったものは、後からとても読みにくいプログラムになってしまいました。反省しなくては!。
 第8回 - RadioButton、Scrollbar、Array などなど -

  今回は、前回のアナログ時計にかなり手を加えて、複雑な設定が行えるようにしてみました。「どこでもクロックVer1.2」

     
  1.   - 仕様 -
     
    1.  PICT形式の画像ファイルを時計の文字盤に使用できます。画像の大きさにウィンドウのサイズを揃えるようにしていますので、あまり大きな画像はまずいです。また、使用する画像ファイルは、プログラムと同じフォルダに入れておきます。

    2.  その絵の上で時計の針を好きな場所にマウスでのドラッグで移動できます。文字盤に使った画像をNewPicture代わりに使いましたので、ちらつきはかなり少ないです。

    3.  針の色や太さを設定変更メニューから変更できます。色の変更については、「REALbasic 覚え書き」のページにあるサンプルをほとんどそのまま使いました。

    4.  同じフォルダー内に設定変更の内容を保存した「prf1」ファイルを作ることができます。後から、このファイルを読み込むことができます。

  2.   - 注意点 -

    1.  かなり複雑になりました。そのため、変数はできるだけ、Module1にまとめました。また、何度も繰り返し使う部分がいくつかありますので、サブルーチン「sub1」「sub2」「sub3」「sub4」を作りました。「sub1」はscrollbarで変化させたRGBの値をc1,c2,c3で返す。「sub2」はそれぞれの針に色を振り分ける。「sub3」は色見本のRoundrectangleに表示する。「sub4」は色の設定を変更するとき、変更前の値をscrollbarに送り込むものです。

    2.  同じような操作をする、RoundRectangleがいくつかありますので、これらのコントロールにArray(配列)を使いました。また、カラー値を入れる変数にもArray(配列)を使いました。EditFieldにもArray(配列)を使うともう少し短いコードになると思います。

    3.  コントロールのArray(配列)を作る方法は、例えば、RoundRectangleであれば、はじめのRoundRectangleの名前を、propertiesウィンドウのName 欄で「RoundRect」とします。2番目のRoundRectangleの名前も同じようにして、propertiesウィンドウのName 欄で同じ名前「RoundRect」とします。すると、配列にしますか?とのメッセージが出ますので、ハイと答えると(もちろん英語です)、RoundRectangleのArray(配列)が出来上がります。propertiesウィンドウのIndex 欄に数字が表れるので確認できます。このようにして必要な数だけ作ることができます。今回は、Array(配列)のインデックス(要素)は 1 から 4 の 4つを作りました。デフォルトでは 0 から作られますので、Index 欄を書き直しています。

    4.  変数のArray(配列)を作る方法は、変数を定義するときに、「dim x(4) as integer」とすれば、0 から 4 までのinteger 型の配列変数 x(0)、x(1)、x(2)、x(3)、x(4) を定義できます。

    5.  設定変更をテキストファイルに書き出す書式やそれを読み込む書式は、はじめなかなかわかりにくいと思いますが、これから頻繁に使うことになると思いますので、ぜひ基本形に慣れるように下さい。「PushButton2」に書き出す書式、「PushButton3」に読み込む書式があります。

    6.  Scrollbarのイベント「ValueChanged」では、スクロールバーをマウスで動かすごとに、「statictext」や「Canvas」などの再描画を行いますので、リアルタイムで表示を変えることができます。この再描画は本来Dialog1の中だけに限られるもので、Window1内の再描画には、「self」など方法が必要です。今回の「どこでもクロック」では、Window1内にある「Timer1」が定期的に再描画を行っているため、針の色が直接変更されます。


 名付けて「どこでもクロック」
 好きな人の写真を貼り付けて楽しんで下さい。

 
 今回の「どこでもクロックVer1.2」の ソースプログラムです
  
  プロジェクトファイルのみです。REALbasicの最新バージョンが必要です。30 kバイト  

  ソースコードについての質問やご意見がありましたら以下のアドレスまでご連絡下さい。
          koko-@mx2.tiki.ne.jp

このホームページのホストは です。 無料ホームページをどうぞ!