Как прокрутить Memo, чтобы было видно последнюю строку ?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Andrey
новенький
Сообщения: 13
Зарегистрирован: 13.09.2012 22:54:48

Как прокрутить Memo, чтобы было видно последнюю строку ?

Сообщение Andrey »

Переписываю свою программу из Delphi в Lazarus, так как преобразовать проэкт из Делфи в Лазарус не удалось.
В Delphi код который привожу далее работал.
При нажатии на кнопку

Код: Выделить всё

 procedure TForm1.SpeedButton15Click(Sender: TObject);
begin

добавляется новая строка в Memo2.

Код: Выделить всё

Memo2.Text:=Memo2.Text+#13#10+Memo1.Text;

и скролл в Memo2 прокручивается на последнюю стоку с текстом.

Код: Выделить всё

SendMessage(Memo2.Handle, WM_VSCROLL, SB_BOTTOM, 0);
end;


При компиляции в Lazarus компилятор останавливается на следующем коде:

Код: Выделить всё

SendMessage(Memo2.Handle, WM_VSCROLL, SB_BOTTOM, 0);

и выдаёт ошибки: Identifier not found "SendMessage"
Identifier not found "SB_BOTTOM"
Где и как мне обьявить эти идентификаторы чтобы код заработал, или какой другой код использовать чтобы скрол прокручивался на последнюю строку с текстом в Memo.

Windows 7 (64 bit) Lazarus 1.0
tema
постоялец
Сообщения: 376
Зарегистрирован: 24.03.2011 19:19:27

Re: Как прокрутить Memo, чтобы было видно последнюю строку ?

Сообщение tema »

Посмотри в дельфи какой цифири соответствует константа SB_BOTTOM и впиши в лазарус вместо неё цифирь :-)
Andrey
новенький
Сообщения: 13
Зарегистрирован: 13.09.2012 22:54:48

Re: Как прокрутить Memo, чтобы было видно последнюю строку ?

Сообщение Andrey »

Вместо SB_BOTTOM вписал цифру 7
Теперь компилятор опять останавливается на том же коде, но выдаёт уже только одну ошибку: Identifier not found "SendMessage"
Что и где ещё надо изменить или добавить в в коде ?
m_guest
постоялец
Сообщения: 193
Зарегистрирован: 14.08.2005 15:10:21

Re: Как прокрутить Memo, чтобы было видно последнюю строку ?

Сообщение m_guest »

Andrey писал(а): Identifier not found "SendMessage"

tema писал(а):Identifier not found "SB_BOTTOM"

Код: Выделить всё

uses JwaWinUser
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Как прокрутить Memo, чтобы было видно последнюю строку ?

Сообщение Ism »

Код: Выделить всё

Memo1.SelStart:= UTF8Length(Memo1.Text);
Memo1.SelLength:=0;
Memo1.SetFocus;     
Andrey
новенький
Сообщения: 13
Зарегистрирован: 13.09.2012 22:54:48

Re: Как прокрутить Memo, чтобы было видно последнюю строку ?

Сообщение Andrey »

В общем после добавления

Код: Выделить всё

uses JwaWinUser

код

Код: Выделить всё

SendMessage(Memo2.Handle, WM_VSCROLL, 7, 0);

заработал.
Благодарю за подсказки.
Ответить