Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.03.18;
Скачать: [xml.tar.bz2];

Вниз

Позиция курсора в TEdit   Найти похожие ветки 

 
Kyau   (2007-02-21 23:40) [0]

Как определить? SelStart не соответствует действительности, если есть выделенный текст.


 
Efir ©   (2007-02-21 23:41) [1]

А SelStart+SelLength


 
Kyau   (2007-02-21 23:45) [2]

>Efir ©   (21.02.07 23:41) [1]

Тоже нет. Если выделять справа налево, то врёт.


 
Германн ©   (2007-02-22 00:28) [3]


> Kyau   (21.02.07 23:40)
>
> Как определить? SelStart не соответствует действительности,
>  если есть выделенный текст.
>

Если под "позицией курсора" понимать место в строке куда будет вставлен следущий набранный на клавиатуре символ или куда будет вставлен текст из клипборда, то SelStart полностью соответствует.


 
Kyau   (2007-02-22 00:41) [4]

Мне нужна позиция мигающей штуки.


 
Германн ©   (2007-02-22 00:44) [5]


> Kyau   (22.02.07 00:41) [4]
>
> Мне нужна позиция мигающей штуки.
>

Прости за нескромность, а зачем? Можешь пояснить?


 
begin...end ©   (2007-02-22 09:31) [6]

var
 P: TPoint;
 I: Integer;
begin
 if Edit.Focused then
 begin
   GetCaretPos(P);
   I := SendMessage(Edit.Handle, EM_CHARFROMPOS, 0, Integer(PointToSmallPoint(P)));
   ShowMessageFmt("Позиция мигающей штучки: %d", [I])
 end
end


 
Kyau   (2007-02-22 12:54) [7]

>Прости за нескромность, а зачем? Можешь пояснить?

Мне нужен TEdit со стандартной рекацией на ввод, который я сам нарисую. Чтобы нарисовать, мне нужно всё знать о нём.

>begin...end ©   (22.02.07 09:31) [6]

То, что надо. А как сделать обратную операцию?


 
begin...end ©   (2007-02-22 17:47) [8]

> Kyau   (22.02.07 12:54) [7]
> А как сделать обратную операцию?

Поместить курсор в нужную позицию? Присвойте нужное значение свойству SelStart. Или нужно решение для случая, когда в edit"е выделение уже есть, и нужно переместить курсор, сохранив выделение?


 
Kyau   (2007-02-22 18:02) [9]

>Поместить курсор в нужную позицию? Присвойте нужное значение свойству SelStart. Или нужно решение для случая, когда в edit"е выделение уже есть, и нужно переместить курсор, сохранив выделение?

Когда пользователь мышью будет выделять текст в том месте, где я его нарисую, я должен установить TEdit так, чтобы как будто выделяли на нём. Т.е. если пользователь выделить текст слева направо, то я должен буду установить выделение с такого-то символа и такой-то длины, плюс указать, где должна быть каретка - вначале выделения или после.


 
begin...end ©   (2007-02-22 18:36) [10]

> Kyau   (22.02.07 18:02) [9]

Всё же я не совсем понял, о чём идёт речь. Возможно, подойдёт это:

var
 I: Integer;
 P: TSmallPoint;
begin
 I := ...; // Нужная позиция курсора
 P := TSmallPoint(SendMessage(Edit.Handle, EM_POSFROMCHAR, I, 0));
 Edit.SetFocus;
 SetCaretPos(P.X, P.Y)
end


 
Kyau   (2007-02-22 19:03) [11]

Отлично работает, спасибо. Потом покажу, что получилось.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.03.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.04 c
2-1172086085
danila_master
2007-02-21 22:28
2007.03.18
PNG в Delphi


2-1172563802
Cara
2007-02-27 11:10
2007.03.18
Индекс в DBGrid.


15-1172127207
DrDe
2007-02-22 09:53
2007.03.18
3GP


15-1172147803
DrDe
2007-02-22 15:36
2007.03.18
Может не в этот раздел, но все же...


2-1172410671
sipsik
2007-02-25 16:37
2007.03.18
как в sql-запросе отфильтровать по дате





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