Форум: "Начинающим";
Текущий архив: 2007.04.15;
Скачать: [xml.tar.bz2];
ВнизПозиция курсора в строке. Найти похожие ветки
← →
Wood (2007-03-29 05:41) [0]Хотелось бы знать, а существует ли функция определения позиции курсора в строке в многострочном тексте? Что-то, типа, SelStart, только для конкретной строки. Или нужно вычислять сначала строку, затем ее длину, а затем позицию?
Спасибо.
← →
Жуков Олег (2007-03-29 06:16) [1]Есть. Memo.CaretPos.
← →
RASkov (2007-03-29 06:19) [2]Если
> в многострочном тексте
- это в Memo, и
> позиции курсора в строке
- это позиция каретки, то:
Format("Строка: %d, Поз: %d", [Memo.CaretPos.Y+1, Memo.CaretPos.X+1]);
← →
Wood (2007-03-29 06:22) [3]Т.е., Memo.CaretPos дает позицию курсора (LongInt) именно в определенной строке, а не тексте? А что есть X и Y?
← →
RASkov (2007-03-29 06:23) [4]> CaretPos
Вообще-то TPoint;
← →
Wood (2007-03-29 06:29) [5]
> RASkov (29.03.07 06:23) [4]
ну, ясно, что пойнт, чего точка, мыши?
← →
RASkov (2007-03-29 06:38) [6]> [5] Wood (29.03.07 06:29)
Отличаешь курсор от каретки?
или тоже как в соседней ветке
[2] Lavrenty © (29.03.07 04:17)
>Курсор,(вертикальная палочка) который мигает.
----------------------------------------------------
> чего точка, мыши?
А тебе чего надо? Попробывать не судьба?
← →
Wood (2007-03-29 06:48) [7]
> >Курсор,(вертикальная палочка) который мигает.
ага :-)
мне надо узнать позицию каретки (editing cursor) относительно SelStart
← →
RASkov (2007-03-29 06:51) [8]А что значит
> относительно SelStart
И для чего это надо?
SelStart+SelLength ?
← →
Жуков Олег (2007-03-29 06:54) [9]
> Отличаешь курсор от каретки?
>
Думаю, что не будет ошибки, если эту "вертикальную палочку" называть курсором или кареткой. Она обе эти функции обеспечивает. Есть текстовый курсор, а есть курсор мыши. В контексте "многострочного текста" понятно о чём речь.
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
← →
Wood (2007-03-29 06:57) [10]пока я делаю так:
Узнаю SelStart, номер строки, длину строки, позицию selstart вначале данной строки. Затем, нехитрыми арифм. вычислениями узнаю позицию курсора для данной строки..
Думал, может есть некая функция, чтоб не изобретать велик :)
← →
Жуков Олег (2007-03-29 06:58) [11]
> позицию selstart вначале данной строки
Звучит подозрительно
← →
Wood (2007-03-29 07:05) [12]
> Жуков Олег (29.03.07 06:58) [11]
ну, как обозвать еще эту позицию...:)
млин, может я туплю конечно.. Но вычисления просты:
SelStart=340,
LengthLine(4)=80,
FirstStartPosLine=315,
SelCaretPos= LengthLine-(SelStart-FirstStartPosLine); = 55 (получаем selstart для данной строки)
← →
RASkov (2007-03-29 07:11) [13]> [9] Жуков Олег (29.03.07 06:54)
Согласен, погорячился :)
Я пытался понять, что же нужно автору - мышь или клава, поэтому такой жесткий вопрос и получился :)
> [12] Wood (29.03.07 07:05)
Ничего не понятно :(
← →
Wood (2007-03-29 07:13) [14]
> Ничего не понятно :(
>
Даже так?!
SelCaretPos from Line number 4
← →
RASkov (2007-03-29 07:20) [15]> [14] Wood (29.03.07 07:13)
У тебя, что две(а) каретки/курсора? :)
> существует ли функция определения позиции курсора в строке в многострочном тексте
Тебе уже ответили еще в [1]
Напиши по русски, типа - имеется выделенный текст, каретка(мигающая палка) находится в начале/середине/конце выделенного фрагмента нужно опредилить....
← →
Wood (2007-03-29 07:38) [16]Нет, выделенного фрагмента нет
← →
Wood (2007-03-29 07:41) [17]TCaretPos = record
Line,
Col: Integer;
A как найти Сol? ту самую символьную позицию в данной строке
← →
ЮЮ © (2007-03-29 07:45) [18]>Напиши по русски, типа - имеется выделенный текст, каретка(мигающая палка) находится в начале/середине/конце выделенного фрагмента нужно опредилить....
при выделенном тексте каретка, обычно отсутсвует, т.к. выделенный текст и есть та самая каретка: вставленный символ, Delete или Backspace "сожрут" всё выделениие и только тогда появится каретка, показывающая, как и выделение, место вставки символа и намекающая на символ, на которого падет кара клавиш
Delete и Backspace
← →
Wood (2007-03-29 07:47) [19]
> A как найти Сol? ту самую символьную позицию в данной строке
Это то, что как раз ищу я или нет?
← →
RASkov (2007-03-29 08:13) [20]> [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 08:23) [21]
> RASkov (29.03.07 08:13) [20]
спасиб... мой моск работает в одном, каком-то левом направлении :)
← →
ЮЮ © (2007-03-29 08:30) [22]>Как это отсутствует? А у меня присутствует и даже еще мигает :),
Каюсь, на TMemo не посмотрел, ограничелся поведением в DM Cliente :) Во всяком случае, мигвть внутри блока выделения его не заставишь, а слившигося с краем этого блока можно и игнорировать.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.04.15;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.048 c