Wie autoscroll zum Ende der RichEdit?
Ich nie brauchte, um das TRichEdit vor, immer verwendet TMemo.
Ich würde gerne RichEdit den automatischen Bildlauf an das Ende, wenn ich text hinzufügen wie TMemo. Sehen, wie es aussieht, nachdem Sie fügen Sie einige Daten:
Wie Sie sehen können, wird der Bildlauf-Leiste bleibt an der Spitze, aber ich möchte, blieb es an der Unterseite, wie ich text Hinzugefügt.
Hab ich 'googelte' nach Lösungen, aber ich konnte nicht finden eine gute und zuverlässige ein.
- Ich sehe keinen Unterschied. Ich habe versucht
Memo1.Lines.Add('test')
undRichEdit1.Lines.Add('test')
und Sie Verhalten sich auf die gleiche Weise. Sie müssen geben Sie mehr details. - Ich leg mehr details. Ich hoffe, dass ich die Sache jetzt klarer.
- Anscheinend ist Sie nicht hinzufügen text durch tun
RichEdit1.Lines.Add('text')
. Verwenden SieSelText := 'text'
statt? - Ich bin mit
RichEdit1.Lines.Add('text')
- Wenn wir RichEdit1.Linien.Add () - Methode auch, die Ausgabe ist die gleiche wie oben(In D2006)
- Ja, jetzt sehe ich! Ich habe versucht
RichEdit1.Lines.Add('text')
imOnClick
von der form und so den Rich-Edit - (oder memo) hatte den Fokus die ganze Zeit. Und dann sowohl die Rich-Edit-und memo-Blättern. Aber wenn das Steuerelement nicht den Fokus hat (z.B. verwenden Sie einOnClick
einerTButton
), dann wird nur das memo-Schriftrollen! Interessant...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diesen code
RichEdit1.GetTextLength
ist viel schneller alsLength(RichEdit1.Text)
. Der ehemalige sendet nur einWM_GETTEXTLENGTH
Nachricht an das Rich-Edit-Fenster (wie es Microsoft will, dass Sie tun), während die anderen zunächst erhalten Sie den gesamten text als eine Zeichenkette (potenziell sehr langsam?), und dann liest der Länge Kardinal von es (sehr schnell). UPDATE: Sorry, Sie wollteGetTextLen
, und Bharat verwendetLength
. Ich mischte Sie!SetFocus
Anforderung. Was ich Tat, ist ein log, in dem Fall ist alles auf dem Formular ist deaktiviert, während das schreiben der log. So musste ich manuell deaktivieren Sie die einzelnen Steuerelemente in einer Zeit, anstatt die ganze Packung (weil Sie können nicht den Fokus auf Steuerelemente deaktiviert).Hier ist viel einfacher und schnelle Lösung:
Im OnChange-event-handler nur:
SendMessage(RichEdit1.handle, WM_VSCROLL, SB_BOTTOM, 0);
Original-Antwort von: https://www.experts-exchange.com/questions/21002277/Richedit-autoscrolling.html
Kurz gesagt, müssen Sie platzieren Sie den cursor an das Ende oder einen code senden um nach unten zu Blättern.
Haben Sie versucht,
RichEdit1.SetFocus
vor. Und zumindest in Delphi 2010 müssen SieGetTextLen
stattGetTextLength