2012-12-29 15 views

cevap

6

Normal olarak, bir not kontrolüne metin eklemek, notu eklenen metnin altına kaydırır. Metin eklemeden önce Lines.BeginUpdate diyoruz, bunu önlemek ve sonrasında EndUpdate çağırmak için:

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

Bu işlevler, ancak titremenin istenmeyen yan etkisine sahiptir :-(DoubleBuffered özelliğinin ayarlanmasının faydası yoktur. – truthseeker

+0

Bunun neden çalıştığını açıklayabilir misiniz? "System.Classes.TStrings.BeginUpdate" belgesinde "Bazı torunları TStrings, güncellemeleri tamamlandığında, bir denetimin kontrol edilmesini anlatmak gibi belirli eylemleri gerçekleştirmek için bu bilgileri kullanır. " – DBedrenko

+1

@New Çünkü" TMemoStrings.SetUpdateState "olduğu gibi uygulanır. – NGLN

İlgili konular