Главная страница
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.025 c
14-20799
gsvserg
2003-07-22 13:36
2003.08.07
TexcelApplication


3-20407
rust
2003-07-16 12:57
2003.08.07
Treeview


6-20646
dito
2003-05-31 13:48
2003.08.07
Как узнать длину документа в пикселях в WebBrowser?


9-20373
двоешник
2003-02-07 21:14
2003.08.07
косинус угла в градусы


3-20449
Andrey V.
2003-07-17 12:58
2003.08.07
IB на 2-х процессорном сервере