Posted: Sep 11, 2010 - 09:52 PM
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