Главная страница
    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.048 c
1-1172039173
samum
2007-02-21 09:26
2007.04.15
Передача строк между потоками приложения


15-1174400750
ProgRAMmer Dimonych
2007-03-20 17:25
2007.04.15
Помогите найти звуковой файл...


2-1174391260
Jeeb
2007-03-20 14:47
2007.04.15
вывод операций за месяц


2-1174490931
vikm
2007-03-21 18:28
2007.04.15
Ошибка ADOQuery.


8-1154954395
ArtemESC
2006-08-07 16:39
2007.04.15
Как считать изображение, находящееся за...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский