2010-12-01 13 views
9

क्या डेल्फी में एक घटक होता है जो समाचार साइटों में डीबी से लोड किए गए ऑटो स्क्रॉल टेक्स्ट को अनुमति देता है?डेल्फी में ऑटोस्क्रोलिंग ज्ञापन

टीटीएस डेल्फी 7 एप्लिकेशन के लिए और एक लंबवत स्क्रॉलिंग की आवश्यकता है।

EchoMemo.Lines.Add('A Line of text or more'); 
EchoMemo.SelStart := EchoMemo.GetTextLen; 
EchoMemo.SelLength := 0; 
EchoMemo.ScrollBy(0, EchoMemo.Lines.Count); 
EchoMemo.Refresh; 

मैं एक लॉग प्रदर्शन के लिए उपयोग करें:

उत्तर

5

रिचएडिट ज्ञापन में स्क्रॉलिंग के लिए उन समाधानों में से कोई भी मेरे लिए काम नहीं करता है। डेल्फी 2010 + w7 का उपयोग करना। लेकिन यह एक पूरी तरह से काम करता है:

हर Lines.Add('...') के बाद इस प्रकार है:

SendMessage(RichEditMemo.Handle, WM_VSCROLL, SB_LINEDOWN, 0); 

में मिला: http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_10120212.html

5

शायद, आप कुछ पैसे तो आप इस खुद को अनुकूलित कर एक DBMemo स्क्रॉल करने के लिए बचाने के लिए।

29

इस तरह के एक साधारण कार्य के लिए, आपको एक वाणिज्यिक घटक खरीदने की आवश्यकता नहीं है! आपको बस इतना करना है कि जरूरत ज्ञापन नियंत्रण के लिए एक EM_LINESCROLL संदेश भेजने के लिए, यह अंतिम पंक्ति के लिए स्क्रॉल करने के लिए है:

procedure ScrollToLastLine(Memo: TMemo); 
begin 
    SendMessage(Memo.Handle, EM_LINESCROLL, 0,Memo.Lines.Count); 
end; 

रहा है, तो अपने ज्ञापन पढ़ने के लिए केवल उन करने के लिए और आवेदन द्वारा स्वचालित रूप से अद्यतन किया जाता है, तो आप उपरोक्त प्रक्रिया को अपने ऑन चेंज इवेंट-हैंडलर में कॉल कर सकते हैं, ताकि जब भी ज्ञापन के अंदर पाठ बदल दिया जाए, तो यह स्वचालित रूप से अंतिम पंक्ति तक स्क्रॉल हो जाता है।

+0

हम्म, मेरे से छोटा, Memo_Scroll गोल्फ किसी को भी? :) – Despatcher

+0

यह स्क्रॉल तेजी से करने का तरीका है। इसे धीमा कैसे करें? – none

+0

@ नहीं, इसे धीमा करके आपका क्या मतलब है? क्या आप स्क्रॉलिंग का दृश्य प्रभाव डालने जा रहे हैं? – vcldeveloper

0

तुम भी एक onchange घटना अंदर Memo.GoToTextEnd; उपयोग कर सकते हैं जब जरूरत, उदाहरण के लिए। उचित ऑटो-स्क्रॉलिंग प्रभाव नहीं है लेकिन समान परिस्थितियों में उपयोगी हो सकता है।

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