Windows 7では、スクロールが自分で行われるため、メモコントロール(TMemo
)がテキストがインストールされた後に自動的にスクロールします(Memo.Lines.Add(Path);
)。メモコントロールの自動スクロールを停止する方法は?
自動スクロールを停止するにはどうすればよいですか?
Windows 7では、スクロールが自分で行われるため、メモコントロール(TMemo
)がテキストがインストールされた後に自動的にスクロールします(Memo.Lines.Add(Path);
)。メモコントロールの自動スクロールを停止する方法は?
自動スクロールを停止するにはどうすればよいですか?
通常、メモコントロールにテキストを追加すると、メモが挿入されたテキストの一番下までスクロールされます。それを防ぐために、テキストを追加する前にLines.BeginUpdate
を呼び出し、その後EndUpdate
呼び出す:
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.BeginUpdate;
try
Memo1.Lines.Add('...');
Memo1.Lines.Add('...');
...
finally
Memo1.Lines.EndUpdate;
end;
end;
これはOKですが、ちらつきの望ましくない副作用があります:-(DoubleBufferedプロパティを設定することは効果がありません – truthseeker
これがなぜ機能するのか説明できますか? 'System.Classes.TStrings.BeginUpdate'のドキュメントでは、 TStringsはこの情報を使用して、更新が完了したときにコントロールに再描画を指示するなどの特定のアクションを実行します。 " – DBedrenko
@New 'TMemoStrings.SetUpdateState'はそのまま実装されるためです。 – NGLN
メモスクロール自動的に? – jachguate
データが挿入されます。コード:lstFiles.Lines.Add(Path);. lstFilesはTMemoです。 – HamiD