Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.045 c
15-1174632825
Loginov Dmitry
2007-03-23 09:53
2007.04.15
Порядок выполнения вложенных функций


2-1174914935
VitAngel
2007-03-26 17:15
2007.04.15
Вопрос по CopyFile


9-1146880328
Сценарист
2006-05-06 05:52
2007.04.15
Что случилось с CVS ?


2-1174652467
Num8er
2007-03-23 15:21
2007.04.15
как копировать файлы с именами в UNICODE?


2-1174898079
Нуб
2007-03-26 12:34
2007.04.15
OPEN CUR_OBJS FOR vSQL USING nOBJ_TYPE, nOBJ_TYPE;





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский