Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2009, 18:14   #1
Kib
Пользователь
 
Регистрация: 19.04.2009
Сообщений: 70
По умолчанию Выделение текста

Есть: Memo1, Button1, RichEdit1, RichEdit2.
Нужно сделать так: Пользователь вводит слово или предложение в поле Memo1, нажимает на кнопку Button1 и в полях RichEdit1 и RichEdit2 выделяются все слова или предложения введеные в поле Memo1.

Как это можно реализовать? Заранее благодарен.
Kib вне форума Ответить с цитированием
Старый 06.07.2009, 20:03   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Вот в принципе пример:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  textPos: Integer;
begin
  textPos := Pos (Memo1.Text, RichEdit1.Text);
  if textPos > 0 then
  begin
    RichEdit1.SelStart := textPos - 1;
    RichEdit1.SelLength := Length(Memo1.Text) ;
    RichEdit1.SelAttributes.Color := clBlue;
    RichEdit1.SelAttributes.Style := [fsBold];
  end;

  textPos := Pos (Memo1.Text, RichEdit2.Text);
  if textPos > 0 then
  begin
    RichEdit2.SelStart := textPos - 1;
    RichEdit2.SelLength := Length(Memo1.Text);
    RichEdit2.SelAttributes.Color := clBlue;
    RichEdit2.SelAttributes.Style := [fsBold];
  end;
end;
А там в цикле двигаешь курсор и делаешь тоже самое.
Дерзай
psycho-coder вне форума Ответить с цитированием
Старый 06.07.2009, 22:01   #3
Kib
Пользователь
 
Регистрация: 19.04.2009
Сообщений: 70
По умолчанию

Двигаю курсор, но pos() все равно начинает искать от начала.

Сдалал так:
Код:
uses StrUtils;
...
var
  textPos: Integer;
  i: integer;
  curtext: integer;
begin
  curtext:=0;
  for i:=0 to Length(RichEdit1.Text) do
  begin
  textPos := PosEx(Memo1.Text, RichEdit1.Text,curtext);
  if textPos > 0 then
  begin
    RichEdit1.SelStart := textPos - 1;
    RichEdit1.SelLength := Length(Memo1.Text) ;
    RichEdit1SelAttributes.Color := clBlue;
    RichEdit1SelAttributes.Style := [fsBold];
    curtext:= textPos+Length(Memo1.Text);
  end;
  end;
...
Спасибо тебе psycho-coder.

Последний раз редактировалось Stilet; 07.07.2009 в 12:48.
Kib вне форума Ответить с цитированием
Старый 07.07.2009, 12:12   #4
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Сообщение от Kib Посмотреть сообщение
Сдалал так:
В этом и заключался смысл моего поста. Что бы ты сам тоже думал
psycho-coder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение текста в webbrowser'е НП... Компоненты Delphi 1 12.07.2011 17:22
Выделение текста max38934 JavaScript, Ajax 5 26.05.2009 14:16
Выделение текста в TWebBrowser IgorKr Общие вопросы C/C++ 0 27.01.2009 21:22
Выделение текста В мемо BESS Компоненты Delphi 15 30.07.2008 17:07