シリアル信号にて受信した文字列をMemoに表示するアプリケーションを作成しています。
下記のようにMemoに文字列を追加しているのですが、表示がちらついてしまいます。
var
RcvString:String;
MmReceive.Lines.Text := MmReceive.Lines.Text + RcvString;
RcvString := '';
どのようにしたら、他のアプリケーション(TeraTerm等)のようにちらつき無く
表示できるのでしょうか?
Addしたら?
DoubleBuffered
ん?さん、あ”?さん回答ありがとうございます。
>Addしたら?
Addは、受信した文字列が改行つきの場合もMemoの文字列が改行されてしまうので、
使用しませんでした。
>DoubleBuffered
は、TMemoのプロパティに無く使用できないようです。
TMemoをTRichEditに置き換えて、RichEdit.Lines.DoubleBufferedをTrue
設定し、同じように実行したらRitchEditに何も表示されません。
下記のようにしても同じでした。
RichEdit1.Lines.BeginUpdate;
RichEdit1.Lines.Text := RichEdit1.Lines.Text + RcvString;
RichEdit1.Lines.EndUpdate;
これね
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=079000
えーとさんありがとうございます。
下記の処理で所望の動作をするように出来ました。
> Str := '追加文字';
> Memo1.SelStart := Length(Memo1.Lines.Text);
> Memo1.SelText := Str;
#Delphi-ML過去ログブラウザで「TMemo ちらつき」でnamazu検索したら、
ヒットしなかったのでこちらに書き込んだんですが、「TMemo」だけで
検索すれば出てきたんですね。失礼しました。
(「TMemoのちらつき防止」で検索すれば出てくるんですが。うーん。)
ツイート | ![]() |