センサでデータを取得して、リアルタイムでMSFlexGridにデータを出力するにはどうしたらいいですか?
知っている方がいたら教えてください。
環境は、WindowsでVB6です。
MSFLEXGridの使い方が分からないのならば
http://www.bcap.co.jp/hanafusa/VBHLP/MSFlexind.htm
[MSFlexGrid].TextMatrix(Cols,Rows)=<リアルタイムなデータ>
みたいな?
それは、複数のデータも出力できるんですか?
基本は同じです、
複数のデータを一つのセルに出したいならば・・・。
複数のデータを複数のセルに出したいのであれば、RowsとColsを変更します。
[MSFlexGrid].TextMatrix(Cols,Rows)=<リアルタイムなデータ>を繰り返しにすればいいでんすか?
はい
Loopなどで、RowsやColsを変更しながら、リアルタイムなデータを
書き込んでいけば、どんどん行が追加していきます。
例えばこんな感じでしょうか?
For j = 1 To 1000
MSFlexGrid1.TextMatrix(0, j) = i
MSFlexGrid1.TextMatrix(1, j) = data(i)
MSFlexGrid1.TextMatrix(2, j) = cVolt(i)
Next
そうですが、出来ませんか?
インデックスの有効範囲外になります。
ColsかRowsがおかしいんじゃ...
Dim i As Long
Me.MSHFlexGrid1.Cols = 3
Me.MSHFlexGrid1.Rows = 1001
For i = 1 To 1000
Me.MSHFlexGrid1.TextMatrix(i, 0) = i
Me.MSHFlexGrid1.TextMatrix(i, 1) = "TEST" & i
Me.MSHFlexGrid1.TextMatrix(i, 2) = "FIELD" & i
Next
インデックスは有効範囲内で使用しましょう。
有効範囲を超えている変数を特定してください。
ただ(0,j)を(j,0)としたら出力されエラーも解決しました。
ただ出力データが、1000まで行くとMSFlexGridの中身が全部1000番目のデータになるんですがどうしてですか?
どうして の理由は
「貴殿がそういうふうにコードを組んだから」
以外には考えられないので、
ブレークポイントを設定してステップ実行して、
変数をウォッチしてみてください。
変数i,jを使って2重ループしてるのであれば、
その終了条件とi,jの値の遷移をよく確認してみてください。
解決しました。
みなさんありがとうございました。
ツイート | ![]() |