Главная страница
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.019 c
6-20659
Hender
2003-06-01 02:22
2003.08.07
TcpSocket


1-20605
Dead Stark
2003-07-24 10:33
2003.08.07
GB-2312 -> HZ-GB-2312.... Как?


3-20428
Алексей
2003-07-17 09:37
2003.08.07
Конвертация DBF в DB


1-20557
JS
2003-07-23 19:48
2003.08.07
TRegistry.SaveKey


3-20392
boka
2003-07-16 08:40
2003.08.07
*.DDF