![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Позиция курсора в строке. [D7, XP]
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?