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

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

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

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

Сообщение Andrey » 14.09.2012 00:54:51

Переписываю свою программу из 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
Andrey
новенький
 
Сообщения: 13
Зарегистрирован: 13.09.2012 22:54:48

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

Сообщение tema » 14.09.2012 02:37:41

Посмотри в дельфи какой цифири соответствует константа SB_BOTTOM и впиши в лазарус вместо неё цифирь :-)
tema
постоялец
 
Сообщения: 376
Зарегистрирован: 24.03.2011 20:19:27

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

Сообщение Andrey » 14.09.2012 21:35:38

Вместо SB_BOTTOM вписал цифру 7
Теперь компилятор опять останавливается на том же коде, но выдаёт уже только одну ошибку: Identifier not found "SendMessage"
Что и где ещё надо изменить или добавить в в коде ?
Andrey
новенький
 
Сообщения: 13
Зарегистрирован: 13.09.2012 22:54:48

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

Сообщение m_guest » 14.09.2012 22:11:30

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

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

Код: Выделить всё
uses JwaWinUser
m_guest
постоялец
 
Сообщения: 193
Зарегистрирован: 14.08.2005 15:10:21

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

Сообщение Ism » 15.09.2012 00:08:27

Код: Выделить всё
Memo1.SelStart:= UTF8Length(Memo1.Text);
Memo1.SelLength:=0;
Memo1.SetFocus;     
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

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

Сообщение Andrey » 21.09.2012 03:24:03

В общем после добавления
Код: Выделить всё
uses JwaWinUser

код
Код: Выделить всё
SendMessage(Memo2.Handle, WM_VSCROLL, 7, 0);

заработал.
Благодарю за подсказки.
Andrey
новенький
 
Сообщения: 13
Зарегистрирован: 13.09.2012 22:54:48


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 223

Рейтинг@Mail.ru