Как програмно прокрутить Memo?
Falk0ner, вс, 06/07/2008 - 15:34.
Этот пример прокручивает на одну строку вниз.
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 http://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;
http://delphiworld.narod.ru/
DelphiWorld 6.0
var
line: integer;
begin
line := StrToIntDef(Edit1.Text,1);
Memo1.SelStart := Memo1.Perform(EM_LINEINDEX, line, 0);
Memo1.Perform(EM_SCROLLCARET, 0, 0);
end;
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;
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;
http://delphiworld.narod.ru/ DelphiWorld 6.0
Отправить комментарий