Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.07;
Скачать: CL | DM;

Вниз

О RichEdit   Найти похожие ветки 

 
AlexDBases ©   (2003-07-26 12:15) [0]

как программно переместить скролбар в richedit в самий низ? (не используя метод RichEdit.setfocus);


 
AlexDBases ©   (2003-07-26 12:51) [1]

Все разобрался, сори за флуд....)
кому интересно
SendMessage(REdit.Handle, EM_LINESCROLL, 0, REdit.Lines.Count-1);


 
Sha ©   (2003-07-26 12:55) [2]

Не, не разобрался.


 
alexdbases ©   (2003-07-26 13:03) [3]

В смисле Sha


 
Sha ©   (2003-07-26 13:21) [4]

EM_LINESCROLL применяется для смещения текста в окне на указанную величину.
Поэтому полученный тобой результат (положение текста в окне RichEdit) будет нестабилен. Он будет зависеть от начального положения текста.


 
alexdbases ©   (2003-07-26 13:30) [5]

Ето все понятно но для моей ситуации в самый раз....нормально все проверил...И к томуже он смещает на кол-во линий .....а если немного проконтролировать это кольчество то все работает )


 
alexdbases ©   (2003-07-26 13:31) [6]

а саме главное не зависит от Caret и Focused =)


 
alexdbases ©   (2003-07-26 13:35) [7]

кстати не знаешь как убить вообще фокус на richedit


 
Sha ©   (2003-07-26 13:36) [8]

alexdbases © (26.07.03 13:30)
Чуть подробнее.
Если в начальном положениие была видна первая строка, то в результате будет видно только последнюю, иначе в результате будет видно чистое поле. Для единообразия можешь в качестве последнего параметра использовать MaxInt.


 
alexdbases ©   (2003-07-26 13:39) [9]

сохраняешь до внесения колво строк ....
вносишь строку.....
вычитание
имеем:
SendMessage(REdit.Handle, EM_LINESCROLL, 0, REdit.Lines.Count-countline-1);


 
Sha ©   (2003-07-26 13:40) [10]

>alexdbases © (26.07.03 13:35)
>кстати не знаешь как убить вообще фокус на richedit

Это плохой стиль. Но если надо, то выбирай:
1. Disabled:=false;
2. Положить на Panel, у которой Disabled:=false;
3. По OnEnter скакать на следующий/предыдущий контрол.


 
alexdbases ©   (2003-07-26 13:41) [11]

единственное необходим ещё один обработчик на OnResize и всё )


 
Sha ©   (2003-07-26 13:43) [12]

alexdbases © (26.07.03 13:39)
SetScrollPos(Handle,SB_VERT,MaxInt,true);


 
alexdbases ©   (2003-07-26 13:43) [13]

на счёт фокуса я гдето ьусагу видел где каретку убивают....и вроде как все .....тока вспомнить не могу где


 
Sha ©   (2003-07-26 13:47) [14]

alexdbases © (26.07.03 13:43)
Фокус и каретка - разные вещи.
Убивать каретку вообще глупость. Во-первых, с ней прдется бороться постоянно, т.к. Винда ее рисовать снова будет. Во-вторых, пользователю неудобно. Уж лучше ее всегда перемещать в конец текста.


 
alexdbases ©   (2003-07-26 13:50) [15]

да знаю.....вот и думаю или фокус или каретку дизейблить......
....про скролбари ...Setscrollbar....ты сам видел что начинает твориться...... ))))


 
Sha ©   (2003-07-26 14:03) [16]

>alexdbases © (26.07.03 13:50)
Мне лично больше нравится такой вариант:

const
Selection: TCharRange= (cpMin: MaxInt; cpMax: MaxInt);
begin;
if not (csDesigning in ComponentState) then begin;
Perform(EM_EXSETSEL, 0, Longint(@Selection));
Perform(EM_SCROLLCARET, 0, 0);


Только надо предварительно установить HideSelection:=false;



Страницы: 1 вся ветка

Текущий архив: 2003.08.07;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.021 c
3-20440
DBDev
2003-07-17 12:13
2003.08.07
Кто-нибудь создавал ODBC алиасы программно?


1-20494
js
2003-07-25 09:30
2003.08.07
почему появляется ошибка если использовать TListView


3-20450
autopan
2003-07-17 14:43
2003.08.07
Вопрос по T-SQL


4-20858
Vitalik
2003-06-06 12:23
2003.08.07
Содержимое корзины


14-20677
DeScriptor
2003-07-21 03:41
2003.08.07
Изобилие ресурсов в откомпилированном exe шнике