Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Позиция курсора в строке. [D7, XP]


Страницы:   1 2

Wood ©   (2007-03-29 05:41:00) 

Хотелось бы знать, а существует ли функция определения позиции курсора в строкев многострочном тексте? Что-то, типа, SelStart, только для конкретной строки. Или нужно вычислять сначала строку, затем ее длину, а затем позицию?
Спасибо.


ЮЮ   (2007-03-29 08:30:00) [1]

>Как это отсутствует? А у меня присутствует и даже еще мигает :),

Каюсь, на TMemo не посмотрел, ограничелся поведением в DM Cliente :) Во всяком случае, мигвть внутри блока выделения его не заставишь, а слившигося с краем этого блока можно и игнорировать.


Wood   (2007-03-29 08:23:00) [2]


> RASkov   (29.03.07 08:13) [20]

спасиб... мой моск работает в одном, каком-то левом направлении :)


RASkov   (2007-03-29 08:13:00) [3]

> [17] Wood   (29.03.07 07:41)
> TCaretPos = record
>   Line,
>   Col: Integer;

Ну так Memo.CaretPos.Y = Line
Memo.CaretPos.X = Col
???

> [18] ЮЮ ©   (29.03.07 07:45)
> при выделенном тексте каретка, обычно отсутсвует, т.к.

Как это отсутствует? А у меня присутствует и даже еще мигает :), но далее по тексту все верно...


Wood   (2007-03-29 07:47:00) [4]


> A как найти Сol? ту самую символьную позицию в данной строке

Это то, что как раз ищу я или нет?


ЮЮ   (2007-03-29 07:45:00) [5]

>Напиши по русски, типа - имеется выделенный текст, каретка(мигающая палка) находится в начале/середине/конце выделенного фрагмента нужно опредилить....

при выделенном тексте каретка, обычно отсутсвует, т.к. выделенный текст и есть та самая каретка: вставленный символ, Delete или Backspace "сожрут" всё выделениие и только тогда появится каретка, показывающая, как и выделение, место вставки символа и намекающая на символ, на которого падет кара клавиш
Delete и Backspace


Wood   (2007-03-29 07:41:00) [6]

TCaretPos = record
   Line,
   Col: Integer;

A как найти Сol? ту самую символьную позицию в данной строке


Wood   (2007-03-29 07:38:00) [7]

Нет, выделенного фрагмента нет


RASkov   (2007-03-29 07:20:00) [8]

> [14] Wood   (29.03.07 07:13)

У тебя, что две(а) каретки/курсора? :)

> существует ли функция определения позиции курсора в строке в многострочном тексте

Тебе уже ответили еще в [1]
Напиши по русски, типа - имеется выделенный текст, каретка(мигающая палка) находится в начале/середине/конце выделенного фрагмента нужно опредилить....


Wood   (2007-03-29 07:13:00) [9]


> Ничего не понятно :(
>

Даже так?!
SelCaretPos from Line number 4


RASkov   (2007-03-29 07:11:00) [10]

> [9] Жуков Олег   (29.03.07 06:54)

Согласен, погорячился :)
Я пытался понять, что же нужно автору - мышь или клава, поэтому такой жесткий вопрос и получился :)

> [12] Wood   (29.03.07 07:05)

Ничего не понятно :(


Wood   (2007-03-29 07:05:00) [11]


> Жуков Олег   (29.03.07 06:58) [11]

ну, как обозвать еще эту позицию...:)
млин, может я туплю конечно.. Но вычисления просты:

SelStart=340,
LengthLine(4)=80,
FirstStartPosLine=315,
SelCaretPos= LengthLine-(SelStart-FirstStartPosLine); = 55 (получаем selstart для данной строки)


Жуков Олег   (2007-03-29 06:58:00) [12]


> позицию selstart вначале данной строки

Звучит подозрительно


Wood   (2007-03-29 06:57:00) [13]

пока я делаю так:
Узнаю SelStart, номер строки, длину строки, позицию selstart вначале данной строки. Затем, нехитрыми арифм. вычислениями узнаю позицию курсора для данной строки..
Думал, может есть некая функция, чтоб не изобретать велик :)


Жуков Олег   (2007-03-29 06:54:00) [14]


> Отличаешь курсор от каретки?
>

Думаю, что не будет ошибки, если эту "вертикальную палочку" называть курсором или кареткой. Она обе эти функции обеспечивает. Есть текстовый курсор, а есть курсор мыши. В контексте "многострочного текста" понятно о чём речь.
http://slovari.yandex.ru/art.xml?art=gl_natural/163/1632_60.HTM&encpage=gl_natural&mrkp=http%3A//hghltd.yandex.com/yandbtm%3Furl%3Dhttp%253A//encycl.yandex.ru/texts/gl_natural/163/1632_60.HTM%26text%3D%25EA%25F3%25F0%25F1%25EE%25F0%26reqtext%3D%25EA%25F3%25F0%25F1%25EE%25F0%253A%253A161196%26%26isu%3D2


RASkov   (2007-03-29 06:51:00) [15]

А что значит
> относительно SelStart

И для чего это надо?
SelStart+SelLength ?


Wood   (2007-03-29 06:48:00) [16]


> >Курсор,(вертикальная палочка) который мигает.

ага :-)
мне надо узнать позицию каретки (editing cursor) относительно SelStart


RASkov   (2007-03-29 06:38:00) [17]

> [5] Wood   (29.03.07 06:29)

Отличаешь курсор от каретки?

или тоже как в соседней ветке
[2] Lavrenty ©   (29.03.07 04:17)
>Курсор,(вертикальная палочка) который мигает.

----------------------------------------------------

>  чего точка, мыши?

А тебе чего надо? Попробывать не судьба?


Wood   (2007-03-29 06:29:00) [18]


> RASkov   (29.03.07 06:23) [4]


ну, ясно, что пойнт, чего точка, мыши?


RASkov   (2007-03-29 06:23:00) [19]

> CaretPos

Вообще-то TPoint;


Wood   (2007-03-29 06:22:00) [20]

Т.е., Memo.CaretPos дает позицию курсора (LongInt) именно в определенной строке, а не тексте? А что есть X и Y?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо