Как программно прокрутить Memo?

Материал из DRKB

Как програмно прокрутить Memo?[править | править код]

Этот пример прокручивает на одну строку вниз.


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 и т.п можно прокрутить подобным образом


Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 00545



В поле ввода вводите на какую строку нужно сойти, и по нажатию на кнопку эта строка будет попадать о зону видимости:

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;


Source: http://delphiworld.narod.ru/
ID: 00993



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;


Source: http://delphiworld.narod.ru/
ID: 01008