Cursor im TMemo positionieren
-
- Registriert: 16. Mär 2007
- Letzter Besuch: 11. Sep 2010
- Beiträge: 14
Wenn ich eine Datei in ein TMemo mit Loadfromfile lade, deren Inhalt größer als das aktuelle Fenster ist, dann scrollt das TMemo runter, sodaß das Ende der Datei zu sehen ist.
Ich finde keine Methode per Code nach oben zu scrollen, geht das irgendwie ? -
- Registriert: 16. Mär 2007
- Letzter Besuch: 11. Sep 2010
- Beiträge: 14
Passiert übrigens nur unter Windows, unter OS/2 steht der Cursor automatisch oben.
EDIT:
Umfangreiche Recherche im Netz bezüglich Windows-Messages u.ä. hat die Lösung zutage gebracht:
Der Code für das Laden sieht jetzt so aus:
--------
myContentMemo.BeginUpdate;
myContentMemo.Clear;
myContentMemo.Lines.AddStrings(oLines);
{$IFDEF Win32}
myContentMemo.Perform(EM_SetSel, 0, 0);
myContentMemo.Perform(EM_LineScroll, 0, myContentMemo.Lines.Count * -1);
{$ENDIF}
myContentMemo.EndUpdate;
--------
Perform ist also des Rätsels Lösung. Durch das BeginUpdate und das EndUpdate ist das Scrollen visuell nicht zu sehen und der Cursor steht am Begin.
Damit das geht muss folgendes in uses rein:
--------
{$IFDEF Win32}
,WinUser
{$ENDIF}
--------
Wenn man im Quelltext MessageBox(...) drin hat, müssen diese ersetzt werden durch Dialogs.MessageBox, weil in WinUser eine andere Implementierung mit lptext drin ist.
editiert von: tobo, 12.09.2010, 11:07 Uhr -
- Registriert: 04. Dez 2006
- Letzter Besuch: 31. Okt 2012
- Beiträge: 92
- Moderiert von:
- Admins-Forum
Benutzer online
- 0 Benutzer
Diese Angaben basieren auf den Useraktivitäten der letzten 30 Minuten.