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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 03.03.2009, 01:56   #1
Костян Пират
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 103
По умолчанию Выделение слов цветом в Memo

Поискал по форуму, ответа на свой вопрос не нашёл... может искал как-то коряво, но тем не менее, проблема такая: необходимо выполнить поиск определенных слов в Memo и выделить их определенным цветом

мои предположения (псевдокод, так скажем):
Код:
with Memo1 do
 for i:=0 to Lines.Count -1 do
  begin
    if length(Lines[i])>=[длина ИС]
     then
      for j := 1 to length(Lines[i])-[длина ИС] do
       if copy(Lines[i],j,])-[длина ИС] )=[ИС]  then
        [окрасить ИС];               
  end;
примечание: ИС - искомое слово

но возможно есть какая-то спецфункция для отыскания слова - тогда проще может как-то можно сделать... но главный вопрос - окраска отдельного слова, поск слова как-нибудь выдумаем
Костян Пират вне форума
Старый 03.03.2009, 02:01   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Для поиска слов лучше использовать POS и POSEX.
mihali4 вне форума
Старый 03.03.2009, 02:05   #3
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Выделять цветом в Memo кажется нельзя... Используй RichEdit - Вот как раз недавно писал:

http://programmersforum.ru/showthread.php?p=214152
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума
Старый 03.03.2009, 02:11   #4
Костян Пират
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 103
По умолчанию

спасибо за pos! действительно будет проще... а что такое posex? и чем она отличается от pos?

ладно, при помощи pos найдём позицию слова в строке... осталось дело за малым: покрасить это слово...

ой, пока писал ответ тут ещё народ помощь предлагает
Костян Пират вне форума
Старый 04.03.2009, 21:00   #5
Костян Пират
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 103
По умолчанию

Действительно, в RichEdit выделяется там... Спасибо!

Но не могли бы пояснить что есть FindText? точнее даже последний атрибут [stMatchCase] или [stWholeWord]...
Костян Пират вне форума
Старый 04.03.2009, 21:24   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

В любом месте юниты набираем "FindText", жмем F1 и читаем справку по ней... И по чему угодно другому.
mihali4 вне форума
Старый 04.03.2009, 23:33   #7
Костян Пират
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 103
По умолчанию

еще бы с английским подружться...
Костян Пират вне форума
Старый 05.03.2009, 01:02   #8
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Да там всё элементарно...
st - сокращение от "Searh Type", а остальное и словарём можно перевести...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума
Старый 05.03.2009, 03:28   #9
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

stWholeWord - искать только слово целиком. Например, если искать "123" в строке "123 1234 12345", то будет найдено лишь один раз (в противном случае - три раза).

stMatchCase - учитывать при поиске регистр символов, т.е. "абв" в строке "абв аБв АБВ" будет найдено один раз (в противном случае - три раза).
Jeni вне форума
Старый 05.03.2009, 08:52   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Было уже такое:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;s:string;  cl:TColor;
begin
s:='if';
for i:=0 to length(RichEdit1.Lines.Text) do begin
 if copy(RichEdit1.Lines.Text,i,length(s))=s then begin
  //********** WITH **********
  with RichEdit1 do  begin
    SelStart:=i-1;
    SelLength:=length(s);
    SelAttributes.Color:=clred;
  end;
  //********** END WITH ****** {}
 end;
end;
end;
I'm learning to live...
Stilet вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение цветом определённых ячеек Bbalt Microsoft Office Excel 5 13.02.2009 12:07
Выделение цветом ratgunter Общие вопросы C/C++ 0 05.12.2008 23:22
Включение функции выделение цветом xxdima Microsoft Office Excel 3 28.08.2008 23:47
выделение строк цветом в StringGrid kate158 Помощь студентам 1 06.08.2008 09:56