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

Вниз

Позиция курсора в Edit   Найти похожие ветки 

 
KSergey ©   (2004-10-01 09:57) [0]

Штука вот в чем. ПОнтяно, что есть SelStart (ну EM_GETSEL).
Но вот ведь как: если есть выделение, то курсор вообще-то может как стоять до него, так и после.

Отсда вопрос: можно ли как-то определить где же этот курсор сейчас стоит??


 
MBo ©   (2004-10-01 12:08) [1]

похоже, что нельзя - но и смысла большого в этом нет - Caret мигает в том месте, где будет производиться вставка текста. Если выделение ненулевое - оно заменится.


 
KSergey ©   (2004-10-01 12:15) [2]

Есть смысл. Раскажу в чем нюанс.

Возьмем MS Word (для примера).
Некий текст, Shift+стрелка_вправо. Несколько раз.
Понятно, выделится часть текста.
Теперь, Shift+стрелка_влево. Выеление уменьшается. Доходит до 0 - и увеличивается в обратном направлении.
Есл теперь Shift+стрелка_вправо - оно (выделение) уменьшается.

Собственно проблема в том, что без знания позиции именно мигающего курсора такую логику не удается реализовать, вот в чем штука... Т.е. в некий момент времени при нажатии Shift (вообще-то проблема для Ctrl+Shift) и стрелок влево/вправо я не знаю как изменять имеющееся выделение.
А ведь выделить можно и мышью, при этом направление выделения имеет значение... (курсор остается либо справа, либо с лева...)


 
MBo ©   (2004-10-01 12:50) [3]

Посмотри, какие извращения:
http://www.undu.com/DN970901/00000033.htm
http://www.undu.com/DN970901/00000034.htm


 
KSergey ©   (2004-10-01 13:31) [4]

> [3] MBo ©   (01.10.04 12:50)
> Посмотри, какие извращения:

Да уж... ;)

Особенно не понял переназначение процедуры окна:

NewWndProc := MakeObjectInstance(EditWindowProc);
OldWndProc := pointer(GetWindowLong(EditControl.handle, GWL_WNDPROC));
SetWindowLong(EditControl.handle, GWL_WNDPROC, longint(NewWndProc));

Не проще ли было воспользоваться WindowProc? Впрочем, возможно в тех версиях дельфи его еще не было...


 
KSergey ©   (2004-10-08 11:42) [5]

УРА!!

GetCaretPos



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

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

Наверх




Память: 0.47 MB
Время: 0.028 c
1-1099640917
Maxim____
2004-11-05 10:48
2004.11.21
tthread замучил


1-1099237858
SVM
2004-10-31 18:50
2004.11.21
Взаимодействие exeшника(Delphi) и dllки(.NET)


1-1099423937
Hyboid
2004-11-02 22:32
2004.11.21
Рамка


4-1097145044
lightix
2004-10-07 14:30
2004.11.21
Завершить сеанс работы Win2k


14-1099253398
Вопрошающий1
2004-10-31 23:09
2004.11.21
Интеграция однопольз. 1С и сторонего клиент-сервер с выписки.