2012-12-29 20 views
6

विंडोज 7 में, एक ज्ञापन नियंत्रण (TMemo) पाठ को लागू करने के बाद स्वचालित रूप से स्क्रॉल करेगा (Memo.Lines.Add(Path);), जो मैं नहीं चाहता, क्योंकि स्क्रॉलिंग स्वयं द्वारा की जाती है।मेमो नियंत्रण की स्वचालित स्क्रॉलिंग को कैसे रोकें?

मैं स्वचालित स्क्रॉलिंग को कैसे रोक सकता हूं?

+0

? डेटा डालने पर – jachguate

+0

। कोड: lstFiles.Lines.Add (पथ) ;. lstFiles TMemo है। – HamiD

उत्तर

6

आम तौर पर, एक ज्ञापन नियंत्रण में पाठ जोड़ना सम्मिलित पाठ के नीचे ज्ञापन को स्क्रॉल करता है। इससे बचने के लिए पाठ जोड़ने से पहले फोन 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; 
+0

यह ठीक काम करता है लेकिन झिलमिलाहट के अवांछित दुष्प्रभाव हैं :-(डबलबफर्ड संपत्ति को सेट करना कोई लाभ नहीं है। – truthseeker

+0

क्या आप समझा सकते हैं कि यह क्यों काम करता है? 'System.Classes.TStrings.BeginUpdate' के लिए प्रलेखन में यह कहता है "कुछ वंशज टीएसट्रिंग्स इस जानकारी का उपयोग कुछ क्रियाएं करने के लिए करते हैं, जैसे अद्यतन पूर्ण होने पर, पुनर्निर्मित करने के लिए नियंत्रण कहने के लिए। " – DBedrenko

+1

@ नया कारण है कि 'TMemoStrings.SetUpdateState' जिस तरह से लागू किया गया है। – NGLN

संबंधित मुद्दे