RichEditに受信したデータを表示させていくプログラムを作成しています。
pRichEdit->SelText = cc;
とだけしているのですが、スクロールバーで画面を移動させていると止まってしまいます。
どうすれば止まらずに、表示も更新できてスクロールも使えるようになるかご存知の方いらしたら教えてください。
もうちょっと具体的にお願いできる?
RichEditでDragMode=dmAutomatic,Enabled=true、ScrollBars=ssBothに
設定した状態で、タスクでpRichEdit->SelText = cc;
とデータを表示させています。
スクロールバーを触らずにそのままの状態なら止まらずに
データが表示され画面もスクロールしていくのですが、
スクロールバーを触ったりしていると止まってしまいます。
うまく説明できませんが、わかってもらえたでしょうか?
スクロールバーを触っても止まらないようにはできるでしょうか?
受信データをRichEditに書き込む部分を
別スレッドにして、
動作させると、スクロールバーをさわっていても
情報更新が止まることはないです。
ScrollBars=ssBothと設定するのではなく、ScrollBarコンポーネントでするということでしょうか?
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;
ツイート | ![]() |