■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#838-0一秒ごとにラインが伸びるプログラムみしょう1999-08-16(月) 17:45
     #839-0RE#838:一秒ごとにラインが伸びるプログラムSONN1999-08-16(月) 17:58
     #840-0RE#838:一秒ごとにラインが伸びるプログラムZero1999-08-16(月) 18:04
     #841-0RE#838:一秒ごとにラインが伸びるプログラムせつら1999-08-16(月) 18:27
#838-0
一秒ごとにラインが伸びるプログラム
題名のようなものを作成しようとおもっています。
以下は、私が考えたタイマーコントロールを使った時計と、一秒ごとにラインが
100ピクセルずつ伸びるようなものです。やはり間違っていたようで、ラインは
伸びません。もしよろしければ、どなたかご助言をおねがいいたします。

Private Sub tmrClock_Timer()

    Static LastTime As String
    Dim x
    If LastTime <> Time Then lblTime.Caption = Time
    LastTime = Time
    x = x + 100
    Line (500, 1000)-(500 + x, 1000)
    
End Sub
#839-0
RE#838:一秒ごとにラインが伸びるプログラム
xもstaticで宣言してみませう。(^^)
#840-0
RE#838:一秒ごとにラインが伸びるプログラム
> 以下は、私が考えたタイマーコントロールを使った時計と、一秒ごとにラインが
> 100ピクセルずつ伸びるようなものです。やはり間違っていたようで、ラインは
> 伸びません。もしよろしければ、どなたかご助言をおねがいいたします。
> 
> Private Sub tmrClock_Timer()
> 
>     Static LastTime As String
>     Dim x
>     If LastTime <> Time Then lblTime.Caption = Time
>     LastTime = Time
>     x = x + 100
>     Line (500, 1000)-(500 + x, 1000)
>     
> End Sub

まず、Time関数の戻り値は Date型なので、変数"LastTime"は Date型にすべきでしょう。

それと、変数"x"がローカルな動的変数になっていますので、このプロシージャが実行される度に
領域確保&初期化され、終了時に開放されています。したがって、xの値は常に100です。
つまり、何度実行されても 座標(500,1000)-(600,1000)のラインになってますね。

ついでに、本質的な事ではないですが、この記述では変数"x"はバリアント型になっています。
無意味なバリアント型は、発見し辛い不具合の温床になりますし、型宣言を省略した書き方も
止めた方がいいです。バリアント型ならきちんと"As Variant"と書くような癖を付けた方がい
いですよ。
#841-0
RE#838:一秒ごとにラインが伸びるプログラム
1秒単位で線を延ばしたいのなら、Load時の時間を記憶しておいて、これと現在時間の差を取ったほうが
良いでしょう。 Timer コントロールのイベントは、いい加減ですから。

Dim dw As Date

Private Sub Form_Load()
    dw = Now
End Sub

Private Sub Timer1_Timer()
    Line (500, 1000)-(500 + DateDiff("s", dw, Now), 1000)
End Sub

こんだけですね。 Timer の Interval は、1秒よりも小さい値、特に 500ms 以下に設定するほうが
正確です。
このページと関連する記事:
#13181-0時計が遅れてくる。2000-12-05(火) 09:14
#17890-0Timerを使ったTime表示2001-09-19(水) 15:50
#13392-0ストップウオッチ2000-12-13(水) 01:39
#11286-0Timerコンポーネントについて2000-09-11(月) 16:03
#33233-0タイマー機能2000-11-10(金) 00:33
#27012-0プログラムの止め方が分かりません2002-02-21(木) 09:54
#39907-0Timerを確実に動かす2001-03-07(水) 00:23
#441-1タイマーコントロール以外の時間の取得方法2002-08-23(金) 23:34
#599-2Timer関数について2003-12-25(木) 14:02
#17431-0キーイベント2001-08-27(月) 11:34
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)