Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
tetデータの読み込み・メッセージ表示
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=2428#CommentId19400
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
るしぇ
 ()
投稿日時
2008/7/5 02:23:00
ここからは解決にある程度の発想力が必要となります。
さて、Timer1.Interval はデフォルトの 100 (ミリ秒)でしょうか?
単純計算で1秒間に10回イベントが起こります。条件が合えば10回ファイルへの
書込み処理が発生します。書込み処理は同じ内容になるでしょうから無駄ですね。
これを避けるには、
アラームメッセージの一覧を管理し、実行したらフラグを立てる。
フラグが立っているアラームメッセージは実行しない。(フラグは
日付が変わった時点でリセットする)としても良いでしょうし、
それほど細かくアラームメッセージが設定されていないのであれば、
ファイルの更新日付が1分以内なら実行しない。。。というのでも
うまくいくでしょう。
もちろんもっと良いアイデアはいくらでもあるでしょう。
では逆に Timer1.Interval を3分にしたら?。。。秒まで時刻が
一致するのは稀です。アラームメッセージが全く実行されなくなります。
これを避けるには、
If 文に不等号を使って範囲指定にします。
If genzai.Hour = strTime.Hour AndAlso Math.Abs(genzai.Minute - strTime.Minute) <= 5 Then
'時が一致・分が前後5分以内の処理
End If
この考え方は重要です。Timer1.Interval が1秒でアラームメッセージを1秒単位で
登録した場合、実行されないアラームメッセージが必ず出てきます。条件をゆるくする
ことが必要な場合の考え方です。
応用すれば格闘ゲームの当たり判定を甘くして難易度を下げることもできるかも
しれません。