SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

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

 長年、フォーラムで初級者をサポートしてきて気付いた問題は、まず、多くの人がタイマーコントロールをストップウォッチタイマーあるいはカウントダウンタイマーとしてとらえていることです。しかし、それは違います。タイマーは、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使用量はごくわずかで、フォーム上の他の機能に影響を及ぼすこともありません。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
動くオブジェクト

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

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

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Richard Newcombe(Richard Newcombe)

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2216 2008/02/29 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング