Форум — Ответы     (  К темам )
 ?  ZvDoo: Подскажите пожалуйста как установить курсор в конец поля Memo при ... (08-01-2003 18:23:22)
Подскажите пожалуйста как установить курсор в конец поля Memo при поступлении в него данных, например из файла.(как в нормальных терминалах) ОЧЕНЬ НУЖНО!
 Павел (08-01-2003 23:34:16)
Подходит ?

Memo1->SetFocus();
long lg = Memo1->Text.Length();
Memo1->SelStart = lg;

Или в чем-то проблема ?
 ZvDoo (09-01-2003 05:22:27)
Да спасибо, это сработало, но при этом мне необходимо чтобы я видел нижнюю часть Memo. У меня получается, что я вижу самый верх поля, а курсор вместе с текстом как и надо смещается вниз!
 Владимир (09-01-2003 09:56:39)
Memo1->SetFocus();
long lg = Memo1->Text.Length();
Memo1->SelStart = lg;
PostMessage(Form1->Memo1->Handle,WM_KEYDOWN,VK_LEFT,0);
PostMessage(Form1->Memo1->Handle,WM_KEYDOWN,VK_RIGHT,0);
 Павел (09-01-2003 10:01:12)
А это пример из FAQ как программно прокрутить TMemo

re: Как получить доступ к линейке прокрутки в TMemo?
Если все, что тебе нужно, это скроллинг, то можно использовать со-общения EM_GETFIRSTVISIBLELINE — для получения номера пер-вой отображаемой строчки, и EM_SCROLL — собсвенно для скро-линга. Формат:
SendMessage(
Memo1->Handle,
EM_GETFIRSTVISIBLELINE,
0,0) — возвращает номер первой отображаемой строчки, где Memo1 — это твой объект типа TMemo.
SendMessage(
Memo1->Handle,
EM_SCROLL,
<Scroll Action>,
0);
Здесь <Scroll Action> — одно из следующих: B_LINEDOWN,SB_LINEUP,SB_PAGEDOWN,SB_PAGEUP.