• 締切済み

TimerコントロールのindexとTimerイベント

TimerコントロールのindexとTimerイベント   TimerイベントではTimerコントロールのindexを利用できないのでしょうか。多数のタイマーを使用し似たような動作をさせる場合、Timerイベントに配列が使えないと手数がかかります。何か便利な方法がありますか

みんなの回答

  • nagare
  • ベストアンサー率33% (280/831)
回答No.1

VB6ですよね? Timerコントロールをコントロール配列にすればOKです パラメタにIndexが入ります Private Sub Timer_Timer(Index As Integer) End Sub

azumaosuga
質問者

お礼

有難うございました。早速試してみます。今後ともよろしくお願いします。

関連するQ&A

  • VB タイマーコントロールをインデックスを使用し130個作成しました。

    VB タイマーコントロールをインデックスを使用し130個作成しました。 タイマーイベントの表記はどのようにするのでしょうか。 Private Sub Timer(0)_Timer()  ~ End Sub とするとエラーになります。タイマーコントロールのインデックスの使い方が分かりません。よろしくお願いします。

  • 【VB6】Timerコントロールは何個まで配置できるか

    お世話になります。 VB6において、ひとつのアプリケーション中で使用できるTimerコントロールの数は、一般に何個くらいが限界でしょうか。 多数のTimerを使用することで、メソッドの呼び出しが極端に遅延するなどの影響は有り得るでしょうか。 現在作成中のアプリでは、既に15個ほどのTimerコントロールを使っています。 ここにフォームを1枚追加し、更にTimerを10個増やそうとしています。 いずれも、Interval=1000で動作させます。 Windows2000での実行が前提です。 環境やOSによって条件等異なると思いますが、どうぞお教えください。

  • Timerイベントについて

    ある処理を30秒おきに実行します。その結果が正常終了するまで繰り返します。正常終了すれば次の処理へ移ります。が、5分間正常終了しなければ次の処理に移るというロジックを考えているのですが、思いつきません。 現在、Timerコントロールを使用してます。TimerをONには出来ますが、処理が自動的に次の処理へ移ってしまう状況です。Timerイベントを走らせた後に結果が分かるまで処理を一時中断したいんです。どなたか助言をお願いします。

  • VBAでイベント発生時に自分の呼ばれたコマンドを知る方法

    イベントが発生したときに自分がどのオブジェクトから呼ばれているイベントか知る方法ってありますか?あるいは上から何番目のコマンド(縦に同じコマンドがズラッと並んでいるイメージ)から呼ばれているかをイベント内部から知る方法ってありますか? 今コーディングで新規フォームを作ってそこにレコード数だけコントロールを配置するというコーディングを考えております。 そのコマンドにクリックイベントも発生させたいので、コントロールを作成してイベントを埋め込むという作業まではできたのですが、不特定多数のコマンドボタンの作成設置方法に悩んでおります。 VBAではコントロールの配列はできないので、コントロールの名前などを全て変えて作らなければなりません。そこをどうするかで頭を悩ませています。 しかも後でどのコントロールがクリックされて呼ばれたのかも知りたいので、コントロール配列のindex番号みたいなものを取得しておく必要もありますが、何か良い方法はないでしょうか? いっそのことコマンドの名前を数字にして、後でそのコントロール名とかオブジェクトのメソッドを参照してインデックス番号を取得・・・みたいなことを考えてたのですが、たしか既存の(目に見えて形となっている)(オブジェクト名自体を持っている)コントロールのメソッドを使用するのはかなり不可能だったような気がするので、タグやオブジェクト名も拾えない気がします。 VBなら同じイベント内容のコマンドを全て配列にしてまとめてクリックイベントにしてそのIndexを見ればプロシージャ1つで済みますが、VBAで似たような方法をする方法を教えてください。 ループで回しながらオブジェクト名の違うコントロールを配置する方法は自分でなんとかやってみますのでindex番号の取得の方法だけお願いします。

  • タイマーコントロールのイベント処理

    VB6SP6を使ってます。 タイマーコントロールで一定間隔に発生させるイベントプロシージャについて以下の点を教えてください。 1.イベント処理に時間を要し、Intervalの値を超えてしまった場合は、また新たな次のイベントが発生するのでしょうか。 もし新規イベントが発生するのでしたらこれまで処理を行ったイベント処理情報は全て破棄されるのでしょうか 2.イベント処理中にEnabledプロパティがFalseとなりタイマーが停止した場合、イベント処理は最後まで完了するのでしょうか。それとも途中で中止され、途中情報は破棄されるのでしょうか 以上、よろしくお願いいたします

  • 不特定多数のコントロールを発生させる方法

    VBAなんですが、最悪VBでも構いません。 コーディングにより、Access中のレコードの数だけ、ラベルやコマンドボタンをフォーム上に作成したいのですが、どうすればいいのかわかりません。 レコードの数なので多数になる可能性が高いので、配列にしようと思っているのですが、コマンドボタンも含まれているため、そのクリックイベントも作らなければならないのです。(イベント内容は同じ。違いはインデックス番号の認識のみ) しかもVBAだとコントロールの配列が作れないので困っています。どうすればいいでしょうか? コントロールの追加にcreatecontrol関数を使うとフォーム名にcreateformを使わないといけないらしく、フォームを新しく作らないといけないみたいでイベントまでは埋め込めそうにありません(既存のフォーム名でするとデザインがどうとかこうとかでエラーが出ます)

  • コントロールが配列かどうかを知るには?

    Visual Basic6.0(SP5)で伺いたいことがあります。 フォーム上の全てのオブジェクトを For Each文で取得しています。以下の様にです。 Dim Control As Object For Each Control In Form1.Controls If TypeOf Control Is Text Then End If Next Control このとき個々のControlがコントロール配列かどうかを知りたいのですが、どうすればよろしいでしょうか?フォーム上にはコントロール配列のオブジェクトも、コントロール配列ではないオブジェクトもあります。 Control.Indexの値を参照しようとしても、コントロール配列でない場合は 「配列ではないオブジェクトです」とエラーになります。 IsArray関数でもFalseになってしまいます。 何を行いたいかというと、そのControlがコントロール配列(Text1(0)とかText1(1)とか)かどうかを調べて、そのIndexをある関数の引数にしたいのです。全てコントロール配列だったら、Control.Indexで値を取得できるのですが。 よろしくお願いします。

  • Timerを使用しての強制待機

    Timerを使用しての強制待機を教えてください。 例えば、VBでのプログラム上でTimerを用いて 強制的に10秒待機させるには どうすればいいですか? ただし、イベントを介しての時間待機ではなくて 単純にプログラムを待機させる方法を教えてください。   皆様宜しくお願いします。

  • C#のTimerについて

    こんにちは。 C#のプログラミングについてわからないところがありますのでご回答いただければと思います。 私はC#を用いて簡単な計算ゲームを作成しています。 その計算ゲームには対戦相手がおり、対戦相手の正解数はTimerを用いてユーザーに練習問題を解かせた時の解答時間を基に勝手に正解数が増えていくといったシステムにしています。 そこで1つ解決できない問題が浮上しました。 対戦相手の数を4人にして4人バラバラに解答しているような動きにしたいため、Timerを4つ設けそれぞれを動かせるようなプログラムを作成しました。 エラーもなく普通に実行できます。 しかしTimer1とTimer2は正常に動き対戦相手の正解数が増えていくのですが、Timer3とTimer4が全く反応していないのか、動かず、対戦相手の正解数が増えません。 プログラムの内容はTimer1~Timer4も対応する変数が違うこと以外一緒です。 原因は何であるかわかる方教えてください! C#ではTimerの使用数が2つまでとなっている?ってことなのでしょうか? スレッドを用いる方法もあると思いますが、Timerを4つ並べてそれぞれを動作させる方法があるのでしたら是非教えてください。 最後になりましたが、わかりにくい文章で本当に申し訳ありません。 よろしくお願いします。

  • Delphiでのコントロールの配列について

    Delphi6.0を使用しているのですが、コントロールの配列は出来ないのでしょうか? Visual BasicではコントロールにIndexを指定することでコントロール配列を取り扱っていましたが、Delphiでの方法がわかりません。 実現したいことは、ウィンドウサイズ変更によってその内部の約50近いコントロールのサイズを均一のサイズに変更したいのです。 上手く伝わっているかどうかわかりませんが、御回答宜しくお願い致します。

専門家に質問してみよう