Позиция курсора и скроллинг в Memo
От: Аноним  
Дата: 06.10.04 08:17
Оценка:
Добрый день.

Есть мемо поле, в которое периодически дописываются строки.

После записи очередной строки нужно позиционировать курсор и прокрутить скроллинг в самый конец, то есть чтобы было видно что записалось.

Как это сделать??

Пробовал SelStart, CaretPos, ScrollBy — не получается.

Спасибо.
Re: Позиция курсора и скроллинг в Memo
От: Sheridan Россия  
Дата: 06.10.04 08:25
Оценка:
Гмм... насколько я помню — автоматом скроллится это дело.... Никогда не задумывался, просто строки добавлял....
-=RSDN@Home 1.1.4 beta 3 rev. 190=- [...]
Matrix has you...
Re[2]: Позиция курсора и скроллинг в Memo
От: Аноним  
Дата: 06.10.04 08:29
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Гмм... насколько я помню — автоматом скроллится это дело.... Никогда не задумывался, просто строки добавлял....


Дело в том, что реально добавление идет в TStringList
а потом просто этот StringList назначается в качестве Memo->Lines
поэтому все и сбрасывается на начало и нужен скролинг
Re[3]: Позиция курсора и скроллинг в Memo
От: Sheridan Россия  
Дата: 06.10.04 08:32
Оценка:
А зачем так слжно? Нельзя в качестве стринглиста сам Memo->Lines использовать?
-=RSDN@Home 1.1.4 beta 3 rev. 190=- [...]
Matrix has you...
Re[4]: Позиция курсора и скроллинг в Memo
От: Аноним  
Дата: 06.10.04 09:12
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>А зачем так слжно? Нельзя в качестве стринглиста сам Memo->Lines использовать?


ну на самом деле можно
просто при написании класса я отделил то что храниться от того в чем отображается...
Re[5]: Позиция курсора и скроллинг в Memo
От: Sheridan Россия  
Дата: 06.10.04 09:23
Оценка: +1
Здравствуйте, <Аноним>, Вы писали:
А>просто при написании класса я отделил то что храниться от того в чем отображается...
И тратиш на это вдвое больше памяти...
-=RSDN@Home 1.1.4 beta 3 rev. 190=- [...]
Matrix has you...
Re: Позиция курсора и скроллинг в Memo
От: Satrapp Россия  
Дата: 06.10.04 09:23
Оценка: 3 (1)
Здравствуйте, <Аноним>, Вы писали:

А>Есть мемо поле, в которое периодически дописываются строки.

А>После записи очередной строки нужно позиционировать курсор и прокрутить скроллинг в самый конец, то есть чтобы было видно что записалось.
А>Как это сделать??

SendMessage(mem.Handle, EM_SCROLLCARET, 0, 0);
... << RSDN@Home 1.1.4 beta 3 rev. 185 >> В winamp'е зажигает silent
Re[2]: Позиция курсора и скроллинг в Memo
От: Аноним  
Дата: 06.10.04 13:02
Оценка:
Здравствуйте, Satrapp, Вы писали:

S>Здравствуйте, <Аноним>, Вы писали:


А>>Есть мемо поле, в которое периодически дописываются строки.

А>>После записи очередной строки нужно позиционировать курсор и прокрутить скроллинг в самый конец, то есть чтобы было видно что записалось.
А>>Как это сделать??

S>
S>SendMessage(mem.Handle, EM_SCROLLCARET, 0, 0);
S>




Не получается....
Re[3]: Позиция курсора и скроллинг в Memo
От: Satrapp Россия  
Дата: 06.10.04 13:25
Оценка:
Здравствуйте, <Аноним>, Вы писали:

S>>
S>>SendMessage(mem.Handle, EM_SCROLLCARET, 0, 0);
S>>

А>Не получается....
а где у вас текущая позиция курсора?

  Memo1.SelStart := Length(Memo1.text);
  SendMessage(Memo1.Handle, EM_SCROLLCARET, 0, 0);
... << RSDN@Home 1.1.4 beta 3 rev. 185 >> В winamp'е зажигает silent
Re[3]: Позиция курсора и скроллинг в Memo
От: Leonid Troyanovsky  
Дата: 06.10.04 13:35
Оценка:
Здравствуйте, Аноним, Вы писали:

S>>
S>>SendMessage(mem.Handle, EM_SCROLLCARET, 0, 0);
S>>


А>Не получается....


Ну, а прелюдия?

 with mem do
   begin
     SelLength := 0;
     SelStart := GetTextLen;
     Perform(EM_SCROLLCARET, 0, 0);
   end;


В D5+ должны быть методы для управления каретом.
--
С уважением, LVT
Re[5]: Позиция курсора и скроллинг в Memo
От: Sinclair Россия https://github.com/evilguest/
Дата: 07.10.04 06:33
Оценка: +1
Здравствуйте, <Аноним>, Вы писали:
А>ну на самом деле можно
А>просто при написании класса я отделил то что храниться от того в чем отображается...
Плохо отделил. Надо было отделить то, что генерит, от того, что хранит. Тогда бы ты мог передать ссылку на любой TStrings в свой генератор. В частности, на TMemo.Lines. И еще много на что.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Позиция курсора и скроллинг в Memo
От: Аноним  
Дата: 07.10.04 14:02
Оценка:
Здравствуйте, Leonid Troyanovsky, Вы писали:

А можно этот код для с++ builder ???


Спасибо.


LT>Здравствуйте, Аноним, Вы писали:


S>>>
S>>>SendMessage(mem.Handle, EM_SCROLLCARET, 0, 0);
S>>>


А>>Не получается....


LT> Ну, а прелюдия?


LT>
LT> with mem do
LT>   begin
LT>     SelLength := 0;
LT>     SelStart := GetTextLen;
LT>     Perform(EM_SCROLLCARET, 0, 0);
LT>   end;
LT>




LT> В D5+ должны быть методы для управления каретом.
Re[6]: Позиция курсора и скроллинг в Memo
От: Аноним  
Дата: 07.10.04 14:03
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, <Аноним>, Вы писали:

А>>ну на самом деле можно
А>>просто при написании класса я отделил то что храниться от того в чем отображается...
S>Плохо отделил. Надо было отделить то, что генерит, от того, что хранит. Тогда бы ты мог передать ссылку на любой TStrings в свой генератор. В частности, на TMemo.Lines. И еще много на что.


Ну на самом деле так и есть

и ссылку могу передать....
Re[7]: Позиция курсора и скроллинг в Memo
От: Sinclair Россия https://github.com/evilguest/
Дата: 08.10.04 02:52
Оценка: +1
Здравствуйте, <Аноним>, Вы писали:
А>и ссылку могу передать....
Тогда и передавай ссылку. При этом позиция курсора не будет теряться, расход памяти будет минимален, а скорость работы — оптимальна.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.