Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск в RichEdit 
V
    Опции темы
popapo
Дата 18.6.2008, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 23.2.2008

Репутация: 1
Всего: 1



Есть код

Код

int StartPos, ToEnd, FoundAt;
  StartPos = 0;
  ToEnd = RichEdit1->SelStart;
  String sFind = Edit3->Text;

  int nMatch=0, n;

  while (1) {
    n = RichEdit1->FindText(sFind, StartPos, ToEnd, TSearchTypes() << stMatchCase);
    if (n == -1)
      break;
    StartPos = n + sFind.Length();
    ToEnd = RichEdit1->SelStart - StartPos;
    ++nMatch;
    FoundAt = n;
  }

  if (nMatch) {
    RichEdit1->SetFocus();
    RichEdit1->SelStart = FoundAt;
    RichEdit1->SelLength = sFind.Length();
  }


только он ищет с конца, а как его изменить чтобы он искал с места где установлен курсор в RichEdit
PM   Вверх
popapo
Дата 18.6.2008, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 23.2.2008

Репутация: 1
Всего: 1



и ещё, чтобы он показал где это слово (опустил ScrollBar до него)
PM   Вверх
petlyura
Дата 18.6.2008, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 30.1.2008
Где: Харьков

Репутация: 2
Всего: 2



Цитата(popapo @ 18.6.2008,  13:42)
Есть код

Код

int StartPos, ToEnd, FoundAt;
  StartPos = 0;
  ToEnd = RichEdit1->SelStart;
  String sFind = Edit3->Text;

  int nMatch=0, n;

  while (1) {
    n = RichEdit1->FindText(sFind, StartPos, ToEnd, TSearchTypes() << stMatchCase);
    if (n == -1)
      break;
    StartPos = n + sFind.Length();
    ToEnd = RichEdit1->SelStart - StartPos;
    ++nMatch;
    FoundAt = n;
  }

  if (nMatch) {
    RichEdit1->SetFocus();
    RichEdit1->SelStart = FoundAt;
    RichEdit1->SelLength = sFind.Length();
  }


только он ищет с конца, а как его изменить чтобы он искал с места где установлен курсор в RichEdit

StartPos=RichEdit1->SelStart;
ToEnd = RichEdit1->Text.Length() - StartPos;

вместо 
StartPos = 0;
  ToEnd = RichEdit1->SelStart;

ToEnd = RichEdit1->Text.Length() - StartPos;
вместо
ToEnd = RichEdit1->SelStart - StartPos;
PM MAIL   Вверх
popapo
Дата 18.6.2008, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 23.2.2008

Репутация: 1
Всего: 1



petlyura, не работает  smile 
PM   Вверх
petlyura
Дата 18.6.2008, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 30.1.2008
Где: Харьков

Репутация: 2
Всего: 2



Цитата(popapo @ 18.6.2008,  14:47)
petlyura, не работает  smile

Я на "глаз" код писал smile  Чтобы  "он искал с места где установлен курсор в RichEdit"
Необходимо знать, что хочешь иметь на выходе.

Возьми в отладке попробуй построчно пройти (а параллельно в голове просчитывай или на пальцах, типа ищем "не" в "Денег нет - зовут Олег" - первый "не" - 2 буква, до конца фразы - около 20 символов, второй "не" - 7 буква, до конца фразы - где-то 15 символов) и сразу станет ясно, где что не так. 
PM MAIL   Вверх
popapo
Дата 18.6.2008, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 23.2.2008

Репутация: 1
Всего: 1



Спасибо, с этим разобрался, а как 
Код

и ещё, чтобы он показал где это слово (опустил ScrollBar до него)


А все не надо, нашол -
SendMessage( RichEdit1->Handle,EM_SCROLLCARET, 0,0);

Это сообщение отредактировал(а) popapo - 18.6.2008, 20:34
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0456 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.