CodeZine(コードジン)

特集ページ一覧

VBにおけるタイマーコントロールの基本

単純なタイマーで複雑な機能を実現する方法

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/02/29 14:00

ダウンロード サンプルソース (6.0 KB)

アプリケーションを書くときにタイマーが必要になることはよくあります。この記事では、タイマーの基本について説明し、さらにはタイマーの効果的な使い方についていくつかの例を取り上げます。

目次

はじめに

 アプリケーションを書くときにタイマーが必要になることはよくあります。この記事では、タイマーの基本について説明し、さらにはタイマーの効果的な使い方についていくつかの例を取り上げます。

 長年、フォーラムで初級者をサポートしてきて気付いた問題は、まず、多くの人がタイマーコントロールをストップウォッチタイマーあるいはカウントダウンタイマーとしてとらえていることです。しかし、それは違います。タイマーは、Xミリ秒ごとに単純にイベントを発生させるコントロールです。

 では、それはどのような仕組みになっているのでしょう。この記事の最後で、いくつかのタイマー利用例を含んだVB6のダウンロード可能なプロジェクトを紹介します。これらの例を見れば、タイマーの仕組みについて理解が深まるでしょう。

 ところで、タイマーは実際に何を行っているのでしょうか。タイマーはコントロールであり、実行時には何も表示されません。カウントや計算も行いません。プログラミングをする際に、表示、カウント、あるいは計算をしなければならないタイミングで、Xミリ秒ごとにイベントを発生させるだけのものです。

 タイマーにはプロパティがごく少数しかなく、そのうちの2つ、つまりIntervalおよびEnabledだけがプログラミングに関係します。

 Enabledは、単純にタイマーをオンやオフに切り替えます。

 Intervalはイベントの発生間隔をミリ秒単位で表し、最大間隔は65535ミリ秒、つまり65秒です。また、注意しなければならないのは、タイマーコントロールは16ミリ秒ごとに動作するハードウェアタイマーにリンクしているので、毎回16ミリ秒目だけが正確であるということです。

 最初の例では、タイマーを使用して時刻表示を継続的に更新する方法を見ていきます。

画面上の時刻の更新

目的

 フォーム上のラベルに現在の日付と時刻を表示します。規則正しく更新され、誤差は最大1秒です。

方法

 フォームにラベルを追加し、ラベル名をTime1とします。また、フォームにはタイマーも追加します。タイマーコントロールはどこに置いてもかまいません。私の場合は、視覚的に邪魔にならないように、下あるいは横の方に置くようにしています。

 フォームのloadイベントでタイマーを起動して、アプリケーションが起動する瞬間から現在時刻を表示するようにします。タイマーを有効にして、タイマーの間隔は500ミリ秒に設定します。間隔を1000ミリ秒(1秒)に設定することもできますが、こうすると正確性の面で少々問題が起こります(もっとも、表示される時刻が1秒以上ずれることはありません)。状況によりときどきタイマーが正確に1秒後に動作しないことがあり、その場合は表示が1秒分スキップされてしまうのです。たいした問題ではありませんが、個人的には見づらいと感じます。

 タイマーを正しく動作させるために必要となる主なコードをリスト1に示します。

リスト1
[Form_Load]
Timer1.Interval = 500
Timer1.Enabled = True

[Timer1_Timer]
Time1.Caption = "Date: " & Date & " - Time: " & Time

 このアプリケーションを起動すると、フォーム上で時刻が継続的に更新されます。CPU使用量はごくわずかで、フォーム上の他の機能に影響を及ぼすこともありません。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:japan.internet.com翻訳記事

もっと読む

著者プロフィール

  • Richard Newcombe(Richard Newcombe)

    Commodore 64の時代からコンピュータに親しみ、今では優れたプログラマー、デザイナーとして活躍。30代前半で、コンピュータから離れることはめったになく、コンピュータ関連の問題ならばいつでも助力とアドバイスを惜しまない人物。最近は本サイトに関するいくつかのプロジェクトに従事。

  • japan.internet.com(ジャパンインターネットコム)

    japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.c...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5