Как програмно прокрутить Memo?
01.01.2007
Этот пример прокручивает на одну строку вниз.
memo1.Perform(WM_VScroll, SB_LINEDOWN,0);
Возможны так же следующие опции:
SB_BOTTOM
SB_ENDSCROLL
SB_LINEDOWN
SB_LINEUP
SB_PAGEDOWN
SB_PAGEUP
SB_THUMBPOSITION
SB_THUMBTRACK
SB_TOP
TComboBox, TListBox, TRichEdit и т.п можно прокрутить подобным образом
Взято с Vingrad.ru https://forum.vingrad.ru
В поле ввода вводите на какую строку нужно сойти, и по нажатию на кнопку эта строка будет попадать о зону видимости:
procedure TForm1.Button1Click(Sender: TObject); var line: integer; begin line := StrToIntDef(Edit1.Text,1); Memo1.SelStart := Memo1.Perform(EM_LINEINDEX, line, 0); Memo1.Perform(EM_SCROLLCARET, 0, 0); end;
DelphiWorld 6.0
Var ScrollMessage:TWMVScroll; begin ScrollMessage.Msg:=WM_VScroll; for i := Memo1.Lines.Count DownTo 0 do begin ScrollMessage.ScrollCode:=sb_LineUp; ScrollMessage.Pos:=0; Memo1.Dispatch(ScrollMessage); end; end;
DelphiWorld 6.0