Форум: "Основная";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];
ВнизО 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c