Autor Beitrag
Stevie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 85

Windows 7
Delphi XE Professional
BeitragVerfasst: Mo 02.06.03 10:35 
Hi,
ich hab RichEdit auf meinem Formular und jedesmal, wenn eine neue Zeile dazukommt, soll nach unten gescrollt werden. Dazu benutze ich folgende Befehle:
ausblenden Delphi-Quelltext
1:
2:
edThread.Perform(WM_VSCROLL, SB_BOTTOM, 0);
edThread.Perform(WM_VSCROLL, SB_PAGEUP, 0);

Das funktioniert auf meinem Rechner (WinNT SP6) und auf weiteren WinNT-Rechnern, aber nicht auf allen. Dort wird nicht nach unten gescrollt. Ebenso auf Win2K-Rechnern. Eine Vermutung von mir ist, dass dort mir dem ersten Befehl nach unten gescrollt wird und mit dem zweiten wieder nach oben. Allerdings kann ich den zweiten nicht weglassen, weil sonst unter die letzte Zeile gescrollt wird. Wie kann ich das Problem beheben?
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mo 02.06.03 11:13 
Hallo!

hast Du schon mal dies hier ausprobiert:
ausblenden Delphi-Quelltext
1:
2:
RichEdit1.Perform (EM_LineScroll, 0, RichEdit1.Lines.Count -1);
RichEdit1.Perform (WM_VSCROLL, SB_PAGEUP, 0);

Damit sollte das RichEdit zur letzten Zeile scrollen. Die letzte Zeile müsste dann auch am unteren Rand des RichEdit zu sehen sein.

Gruß
Tino
Stevie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 85

Windows 7
Delphi XE Professional
BeitragVerfasst: Mo 02.06.03 11:53 
Nö, hat nicht gefunzt. Ging wieder bis unter die letzte Zeile.
Aber ich hab was anderes herausgefunden, das klappt:
ausblenden Quelltext
1:
2:
edThread.SelStart := Length(edThread.Text);
edThread.Perform(EM_SCROLLCARET, 0, 0);
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mo 02.06.03 12:38 
Stevie hat folgendes geschrieben:
Nö, hat nicht gefunzt. Ging wieder bis unter die letzte Zeile.

Was verstehst Du unter: "ging wieder bis unter die letzte Zeile"? Bei mir hat es funktioniert!

Gruß
Tino
Stevie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 85

Windows 7
Delphi XE Professional
BeitragVerfasst: Mo 02.06.03 12:47 
Das Feld hat bis unter die letzte Zeile gescrollt, sodass nichts mehr von dem Text zusehen war. Die letzte Zeile des Textes war sozusagen eine Zeile über dem zu sehenden Ausschnitt. Scroll doch mal manuell mit dem Pfeil nach unten soweit es geht. Dann passiert das gleiche. (bei mir jedenfalls)
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mo 02.06.03 12:57 
Also bei mir hat es funktioniert. Die letzte Zeile wurde am unteren Rand des RichEdits angezeigt. (WIN2000)

Gruß
Tino
Stevie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 85

Windows 7
Delphi XE Professional
BeitragVerfasst: Mo 02.06.03 13:00 
Vielleicht liegt es an einer Eigenschaft des RichEdits!?
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mo 02.06.03 13:02 
Ich hab die Standardeinstellungen benutzt (nichts geändert).
Stevie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 85

Windows 7
Delphi XE Professional
BeitragVerfasst: Mo 02.06.03 13:06 
Ich hab HideScrollBars auf True gesetzt, Scrollbars auf ssVertical und WordWrap auf True. Ach, und ReadOnly auf True.