powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Выделение текста в TMemo и установка позиции каретки...
5 сообщений из 5, страница 1 из 1
Выделение текста в TMemo и установка позиции каретки...
    #40024947
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил накарякать что-то по типу текстового редактора... И естественно куда же без такого функционала как поиск строк...
Вот только проблема в том что оно не работает...
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
VAR I,IX : INTEGER;
begin
for i := 0 to Strngs.Lines.Count-1 do
BEGIN
IX := POS(Edit1.Text,Strngs.Lines[i]);
if IX > 0  then
begin Strngs.CaretPos.SetLocation(ix,i);
STRNGS.SelLength := length(Edit1.Text);
exit; end;
end;

end;


(вероятно что в обычной ситуации выделение через этот код проходило бы криво).
При отладке я заметил, что на этом участке кода :
Код: pascal
1.
Strngs.CaretPos.SetLocation(ix,i);


Происходит установка каретки не в нужную мне позицию, а в конец файла... Почему? Разбираться уже нет сил, так как потратил уже на этот код пол дня. Сразу подмечу, что у компонента Memo (Strngs) установлен HideSelection в false, а так-же код поиска и выделения находится в дочерней форме.
Собственно вопрос : как заставить процедуру SetLocation работать корректно или что надо использовать взамен её, чтобы всё работало...
...
Рейтинг: 0 / 0
Выделение текста в TMemo и установка позиции каретки...
    #40024950
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В справку нужно смотреть :)

http://docwiki.embarcadero.com/CodeExamples/Sydney/en/SelStart_(Delphi)
...
Рейтинг: 0 / 0
Выделение текста в TMemo и установка позиции каретки...
    #40024953
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,

То есть использование SelStart обязательно...
...
Рейтинг: 0 / 0
Выделение текста в TMemo и установка позиции каретки...
    #40024955
UtoECat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,
Спасибо... Теперь работает...
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
VAR i,IX,SkipChars,J : INTEGER;
begin
for i := 0 to Strngs.Lines.Count-1 do
BEGIN
IX := POS(Edit1.Text,Strngs.Lines[i]);
if IX > 0  then
begin
      SkipChars := 0;
      for J := 0 to I - 1 do
        SkipChars := SkipChars + Length(Strngs.Lines[J]);
      SkipChars := SkipChars + (I*2);
      SkipChars := SkipChars + IX - 1;
      Strngs.SetFocus;
      Strngs.SelStart := SkipChars;
      Strngs.SelLength := Length(Edit1.text);
      Break;
    end;
end;
...
Рейтинг: 0 / 0
Выделение текста в TMemo и установка позиции каретки...
    #40024976
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UtoECat
Спасибо... Теперь работает...

Пожалуйста.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Выделение текста в TMemo и установка позиции каретки...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]