2012-12-29 19 views
6

Trong Windows 7, một điều khiển ghi nhớ (TMemo) sẽ cuộn tự động sau khi văn bản được insterted (Memo.Lines.Add(Path);), mà tôi không muốn, bởi vì di chuyển được thực hiện bởi bản thân mình.Làm cách nào để dừng tự động điều khiển Ghi nhớ?

Làm cách nào để dừng cuộn tự động?

+0

Khi ghi nhớ tự động? – jachguate

+0

khi dữ liệu được chèn vào. code: lstFiles.Lines.Add (Path) ;. lstFiles là TMemo. – HamiD

Trả lời

6

Thông thường, việc thêm văn bản vào điều khiển ghi nhớ sẽ cuộn ghi chú đến cuối văn bản được chèn. Để ngăn chặn điều đó, hãy gọi Lines.BeginUpdate trước khi thêm văn bản và gọi EndUpdate sau đó:

procedure TForm1.Button1Click(Sender: TObject); 
begin 
    Memo1.Lines.BeginUpdate; 
    try 
    Memo1.Lines.Add('...'); 
    Memo1.Lines.Add('...'); 
    ... 
    finally 
    Memo1.Lines.EndUpdate; 
    end; 
end; 
+0

Chức năng này OK nhưng có tác dụng phụ không mong muốn của việc nhấp nháy :-(Thiết lập thuộc tính DoubleBuffered không có lợi ích nào – truthseeker

+0

Bạn có thể giải thích lý do tại sao nó hoạt động không? Trong tài liệu cho 'System.Classes.TStrings.BeginUpdate' nó nói" Một số con cháu của TStrings sử dụng thông tin này để thực hiện một số hành động nhất định, chẳng hạn như yêu cầu kiểm soát để sơn lại, khi cập nhật hoàn tất. " – DBedrenko

+1

@New Bởi vì' TMemoStrings.SetUpdateState' được triển khai theo cách của nó. – NGLN

Các vấn đề liên quan