スクロール中に最後の行に表示させるには?


cat  2007-04-12 22:49:41  No: 25746

RichEditに受信したデータを表示させていくプログラムを作成しています。

pRichEdit->SelText = cc;

とだけしているのですが、スクロールバーで画面を移動させていると止まってしまいます。
どうすれば止まらずに、表示も更新できてスクロールも使えるようになるかご存知の方いらしたら教えてください。


ddd  2007-04-13 19:27:27  No: 25747

もうちょっと具体的にお願いできる?


cat  2007-04-18 20:51:09  No: 25748

RichEditでDragMode=dmAutomatic,Enabled=true、ScrollBars=ssBothに
設定した状態で、タスクでpRichEdit->SelText = cc;
とデータを表示させています。
スクロールバーを触らずにそのままの状態なら止まらずに
データが表示され画面もスクロールしていくのですが、
スクロールバーを触ったりしていると止まってしまいます。
うまく説明できませんが、わかってもらえたでしょうか?
スクロールバーを触っても止まらないようにはできるでしょうか?


Fusa  2007-04-18 23:13:17  No: 25749

受信データをRichEditに書き込む部分を
別スレッドにして、
動作させると、スクロールバーをさわっていても
情報更新が止まることはないです。


cat  2007-04-19 01:16:37  No: 25750

ScrollBars=ssBothと設定するのではなく、ScrollBarコンポーネントでするということでしょうか?


ちゃうちゃう犬  2007-04-19 05:53:25  No: 25751

C++Builderでなく Delphiさんぷる

type
  TMyThread = class(TThread)
  private
   procedure Execute; override;
   procedure AddTextLine;
  end;

procedure TMyThread.Execute;
begin
  while not Terminated do begin
   Synchronize(AddTextLine);
   Sleep(500);
  end;
end;

procedure TMyThread.AddTextLine;
begin
  Form1.RichEdit1.SelText := StringOfChar(Chr(Random(26)+$41), Random(20)+8)+#13#10;
end;

var
  ThreadActive: Boolean;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if ThreadActive then exit;
  with TMyThread.Create(True) do begin
   FreeOnTerminate := True;
   Resume;
  end;
  ThreadActive := True;
end;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加