このページはIE6.0で表示確認しました。




逆引きヘルプ top   ひまわりのススメ top   top


作業待ちフォームのサンプル


某社のイラスト作成ツールなんかを使っているとプラグインなどを読み込んでいるときに変なイラストと、「ただいまプラグインを設定中」みたいなフォームがでますよね。
いろんな動作をしてから母艦を浮上させるとき、あまりに時間がかかるようなら、あのフォームを作っておきましょう。
手順は簡単。
  1. フォームを作成する。
  2. フォームに表示するイラストや文字を設定する。
  3. 「描画処理反映」命令。
  4. 作業中にどのくらいの作業が終わったかを示す変数を作る。
  5. 作った変数を母艦のタイトルに表示させる。
  6. 作成したフォームの、可視をオフにする。
最初の二つはわかると思います。
なので、後半四つの解説。
  • 「描画処理反映」命令………ポイント1
    これは、この命令を外してみるとこの命令を入れた意味がわかります。
    「描画処理反映」命令を外すと、背景色など、フォームに設定したはずのものが母艦浮上するまで表示されません。
    それではわざわざこのフォームを作った意味がないです。
    一瞬待ってあげて、表示する隙を作ってあげましょう。

  • 作業中にどのくらいの作業が終わったかを示す変数を作る。
    待ってて、といわれても、いくつ作業があって、そのうちのいくつが終わったのかがわからないと待ってるほうはイライラしますよね。
    そんな時は、変数を使いましょう。
    反復命令を使っているときなどは、分母、つまり仕事の数がわからないと思います。
    そのときは、自分で試すときに、母艦浮上の後、「変数と、言う。」という命令を加えておけば、最終的な変数の数=分母がわかります。
    「言う」命令を使った後は削除するのを忘れずに。
    忘れると、かなり格好悪いです。

  • 作った変数を母艦のタイトルに表示させる。………ポイント2
    ためしにラベルを作ってそこに変数を表示させようとしたら、「描画処理反映」命令を入れないと次々変わる変数を表示できませんでした。
    その点、フォームのタイトルは「描画処理反映」命令なしでも正しく変数を表示できるのでこういうときには最適。
    ただし、どうしてもデザインにこだわりたい場合、全体の作業数によっては「ラベル+描画処理反映」でも良いかもしれません。
    具体的な数は使う人の環境と、ストレスというか辛抱強さによると思います。
    0.1秒増えるだけなら待てるかな…

  • 作成したフォームの、可視をオフにする。
    これはまぁ、わからない人はいないかと思いますが一応。
    母艦浮上命令が最後にあるので、基本的に作ったフォームは母艦の陰に隠れて見えなくなります。
    しかし、何かの都合で見えてしまうと格好悪いのであらかじめフォームの可視をオフにすることで、フォームを見えなくすることができます。
    起動時にしかこのフォームを使わない、という方(大多数だと思われます)は、ここで、作ったフォームを壊してしまうのもいいでしょう。フォームのオブジェクト破壊をする場合、乗せてあった部品は見えなくなっただけで存在していますので、イメージ部品やラベル部品なんかを乗せた方は、それらを壊すのも忘れずに。
こんなものかな。
では、以上の手順を踏んだサンプルを以下に載せます。
ちょっと無駄が多いですが、ソースを読んでみてください。
{作業待ちフォームのサンプル}
母艦最大化。
母艦の、ダブルクリックした時は、おわり。

文字色は、白色。
待っててフォームを、フォームとして、作成。
その、スタイルは、ダイアログスタイル。
その、背景色は、黒色。
待っててフォームを、中央に移動。
待っててフォームの、(10,10)へ、「今、準備してます。
待っててね。」と、文字描画。

描画処理反映。※ポイント1

作業=0

'ここから下は、いかにも重そうな処理。作業の意味はありません。
'たぶんどんなに高性能のPCでも数秒かかるはず。
'ちなみに、私のマシン(PenV600Mhz/メモリ128MB)では、一分強かかります…

r=100
*繰返し描画
n=0
m=0
p=整数((母艦の、幅)/r)
q=整数((母艦の、高さ)/r)
r回(
  r回(
  ペン色は、RGB(乱数(255),乱数(255),乱数(255))
  塗り色は、RGB(乱数(255),乱数(255),乱数(255))
  (n,m)から、(n+p,m+q)へ、円形。
  n=n+p+1
  作業=作業+1
  待っててフォームの、タイトルは、「{作業}/38500」。)※ポイント2
  m=m+q+1
  n=0)
※もし、処理速度が遅いマシンを使っていたら、以下の3行を、「母艦浮上」の一行に書き換えてください。
r=r-10
もし、r=0ならば、(母艦浮上。待っててフォームの、可視は、オフ。待機。)
繰返し描画。
*このサンプルで使った命令など
作業待ちフォームに関する命令など
作成guiオブジェクトを使用するときに必ず使う命令。
「XX(名前)を、XX(部品の種類)として、作成。」の様に使う。
スタイルウインドウのタイプ。枠のない、「枠なし」やアイコンのない「ダイアログスタイル」などに設定できる。因数のうちのひとつ。
中央に移動命令。母艦やフォームをデスクトップの中央に持ってくる。
特殊な場合を除き、「母艦を、中央に移動」しておくと使いやすいことが多いと思われる。
文字描画命令。元はイメージ部品に文字を書きたいときに用いられたがver.1.40以降、フォーム部品が使えるようになり、以来、フォームに文字を書きたいときはこの命令を使うようになった。因数を間違えると、変なところでエラーがでる。注意。
描画処理反映命令。引数はない。重い処理の間にこの命令を入れておくと描画過程を見ることができたりする。「待つ」命令と違ってマシンの性能によってかかる時間が違う。関連
タイトル部品の設定項目のひとつ。タイトルを設定できるのは母艦とフォームだけ。タイトルを設定するという処理はかなり軽い処理のようだ。
その他。
最大化命令。母艦とフォームにのみ使える。引数は「〜を、」。
文字色設定項目のひとつ。因数を、省いた場合、以後すべてに適用される。
このサンプルの場合、母艦浮上命令の後に「作業と、言う。」と入れたら、出てきたダイアログの文字色は白色。
整数命令。小数点以下を切り捨て、指定された数を整数にする。()のなかに整数にしたい数を入れる。もちろん、ここに変数を入れても良い。
RGB(乱数(255),乱数(255),乱数(255))RGB(?,?,?)で色を指定する命令。乱数命令を使うことにより、ランダムに色を指定している。
円形別に四角形でも良かったが、下にいろいろ見えてるほうが楽しいかな、と思って円形にした。イメージ部品やフォーム部品に円を描きたい時は、「円形描画」を使う。