[リストへもどる]
一括表示

投稿時間:2002/12/27(Fri) 10:34
投稿者名:POO
Eメール:
URL :
タイトル:
タイマーコントロール???
VBのタイマーコントロールは何個も持つのはバグの元になりうるから
何個もべきではないと聞いたことがあったので、どなたかお聞きしたいことがあります。
よろしくお願いいたします。

やりたいことは
メイン画面とその他3画面(仮に画面1・2・3)あって、全画面に現在時刻を表示したいのです。
ちなみに時間更新は1分(60秒)ごとに更新できたらOKです。

メイン画面にはタイマーコントロールをひとつ設けて現在時刻の表示。
その他の画面はメイン画面で表示している現在時刻のデータをひっぱってきて
表示させたいのですが、表示はさせるのですが更新されません。
以下の方法ではまちがいでしょうか?
メイン画面はいつでもロードされています。
その他の画面はメインから遷移した時表示され、メイン画面はその下で見えないですけど表示されています。
<メイン>
Label_MainTime.Caption=Format(Now, "hh:mm")

<画面1>
Label_Time1.Caption=Form_Main.Label_MainTime.Caption

また、ボタンAが押されてから60秒後にイベントを発生させる(たとえばメッセージを出すとか)
といったことをしたいのですが、これはタイマーコントロールを使うしか方法はないのでしょうか?

投稿時間:2002/12/27(Fri) 11:14
投稿者名:Lantern
Eメール:
URL :
タイトル:
Re: タイマーコントロール???
イベントの通知はアクティブな画面に対して行われるので
メイン画面が他の画面の背面にある時、メイン画面の
タイマは動作しないのだと思います。

ボタンを押されてから60秒後
私も普段はタイマ使ってます。
VBでマルチスレッドの作成ってできるのかな?
未探索><

投稿時間:2002/12/27(Fri) 12:35
投稿者名:Lantern
Eメール:
URL :
タイトル:
Re^2: タイマーコントロール m(_ _)m
> イベントの通知はアクティブな画面に対して行われるので
> メイン画面が他の画面の背面にある時、メイン画面の
> タイマは動作しないのだと思います。
>
Timerの割り込みってアクティブじゃなくても
入るんですね^^;
勉強になります。ありがとう&誤情報ごめん。

投稿時間:2002/12/27(Fri) 11:23
投稿者名:hide
Eメール:
URL :
タイトル:
Re: タイマーコントロール???

> やりたいことは
> メイン画面とその他3画面(仮に画面1・2・3)あって、全画面に現在時刻を表示したいのです。
> ちなみに時間更新は1分(60秒)ごとに更新できたらOKです。
>
> メイン画面にはタイマーコントロールをひとつ設けて現在時刻の表示。
> その他の画面はメイン画面で表示している現在時刻のデータをひっぱってきて
> 表示させたいのですが、表示はさせるのですが更新されません。
> 以下の方法ではまちがいでしょうか?
> メイン画面はいつでもロードされています。
> その他の画面はメインから遷移した時表示され、メイン画面はその下で見えないですけど表示されています。
> <メイン>
> Label_MainTime.Caption=Format(Now, "hh:mm")
>
> <画面1>
> Label_Time1.Caption=Form_Main.Label_MainTime.Caption

解釈が間違ってたら,ごめんなさい。
<画面1>
Label_Time1.Caption=Form_Main.Label_MainTime.Captionを
標準モジュール内に呼び出し関数として用意して,
メイン内のタイマ関数で呼び出す方法ではどうでしょう?

投稿時間:2002/12/27(Fri) 11:58
投稿者名:NEU(ノイ)
Eメール:
URL :
タイトル:
Re: タイマーコントロール???
以下のものを試してみてください。

フォームを2つ用意し、
Form1にラベルとコマンドボタンを1つずつ
Form2にラベルを1つ貼り付けます。

Form1に以下のコードを貼り付けます。

Private Sub Command1_Click()
    Form2.Show
    Timer1.Interval = 2000
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
    Label1.Caption = Time
    Form2.Label1.Caption = Label1.Caption
End Sub

投稿時間:2002/12/27(Fri) 12:43
投稿者名:Lantern
Eメール:
URL :
タイトル:
Re: タイマーコントロール 他の方法
メイン以外の各フォームに
Private WithEvents time1 As Timer 'タイマーをイベント付きで宣言
Private Sub Form_Load()
    Set time1 = Form1.Timer1    'Form1はメインフォーム
                   'Timer1はメインフォームのタイマー
End Sub
Private Sub time1_Timer()
    Me.Label1.Caption = Time
End Sub

としても実現できました^^

投稿時間:2002/12/27(Fri) 13:06
投稿者名:Say
Eメール:
URL :
タイトル:
マルチポスト
一度 V友 にソースを掲載しましたが、
マルチポストしているようでしたので
回答は削除させていただきました。