VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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回当たり数行を削除するだけで済むかと思います。
画面のチラツキも表示の頻度が頻繁なのが原因なのである程度の文字数を受信した時に
表示するようにすればチラツキが抑えられるのでは。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -