投稿日 | : 2005/03/21(Mon) 20:39 |
投稿者 | : 花ちゃん |
Eメール | : |
URL | : |
タイトル | : Re: リッチテキストボックスを用いたターミナル |
どの処理が遅いかは、実際のコード上で測定すれば解るはず。
原因が解ればするべき事も見えてくるでしょう。
又、発想を変えて実際に手作業で行を削除する場合どのようにしますか?
5Mバイトのファイルでも瞬時に削除できます。
Instr 関数を使用するとどうなるか Debug.Print InStr(RichTextBox1.Text, vbCrLf) これだけで
数秒かかってしまいます。
コピーやペーストも結構時間がかかっているはず。
Private Sub Command1_Click()
Dim i As Long
i = 10 '10行削除(総行数-500)
With RichTextBox1
.SetFocus
.SelStart = 0
SendKeys "+{DOWN " & i & "}"
SendKeys "{DELETE}"
End With
End Sub
(実際に使用する場合は SendKeys を使用しないで API を使うようにして下さい)
総行数を取得するのはAPIを使って 総行数-500 分繰り返せば実行する頻度にもよりますが
1回当たり数行を削除するだけで済むかと思います。
画面のチラツキも表示の頻度が頻繁なのが原因なのである程度の文字数を受信した時に
表示するようにすればチラツキが抑えられるのでは。