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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2008, 08:35   #1
[RR]Reaction
Заблокирован
 
Регистрация: 06.04.2008
Сообщений: 17
По умолчанию Подсветка текста

Здраствуйте уважаемые, мне нужна небольшая помощь с подсветкой текста. Есть у меня текст:

Цитата:
if (myass = 2) then
{
if (myass = 0) then ( begin>=1 )
return 1
}
end;
И вот надо чтобы из этого текста в RichEdit1 подсвечивался текст If везде где он есть только в RichEdit1. Пожалуйсто помогите... Спасибо заранее я буду очень благодарен за вашу помощь...
[RR]Reaction вне форума Ответить с цитированием
Старый 08.04.2008, 09:35   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Примерно так:
Код:
const
  word: array[1..18] of string[9] = ('if','then','else','begin','end','for','to',
    'do','while','repeat','until','case','of','type','var','const','procedure',
    'function');
var
  k,i: integer;
begin
  for i:=1 to length(word) do
    begin
      k:=-length(word[i]);
      repeat
        k:=RichEdit1.FindText(word[i],k+length(word[i]),
           length(RichEdit1.Text)-k-length(word[i]),[stWholeWord]);
        RichEdit1.SelStart:=k;
        RichEdit1.SelLength:=length(word[i]);
        RichEdit1.SelAttributes.Style:=[fsBold];
        Application.ProcessMessages;
      until k < 0;
    end;
end;
_Dmitry вне форума Ответить с цитированием
Старый 08.04.2008, 09:37   #3
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 вне форума Ответить с цитированием
Старый 08.04.2008, 17:08   #4
[RR]Reaction
Заблокирован
 
Регистрация: 06.04.2008
Сообщений: 17
По умолчанию

Дмитрий спасибо за ваш код я его немного изменил чтоб работал правильно

Код:
procedure TForm1.RichEdit1Change(Sender: TObject);
const
  word: array[1..18] of string[9] = ('if','then','else','begin','end','for','to',
    'do','while','repeat','until','case','of','type','var','const','procedure',
    'function');
var
  k,i: integer;
begin  
  for i:=1 to length(word) do
    begin
      k:=-length(word[i]);   
      repeat
        k:=RichEdit1.FindText(word[i],k+length(word[i]),   
           length(RichEdit1.Text)-k-length(word[i]),[stWholeWord]);
        RichEdit1.SelStart:=k;
        RichEdit1.SelLength:=length(word[i]);
        RichEdit1.SelAttributes.Color:=clBlue;
      until k < 0;
          RichEdit1.SelAttributes.Color:=clBlack;
    end;
end;


end.
Stilet а вам спасибо точто пытались помоч!
[RR]Reaction вне форума Ответить с цитированием
Старый 08.04.2008, 22:01   #5
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Пример с подсветкой комментариев, о чем вы просили в другой теме...
Вложения
Тип файла: zip Sintaksis.zip (2.0 Кб, 290 просмотров)
_Dmitry вне форума Ответить с цитированием
Старый 08.04.2008, 22:18   #6
[RR]Reaction
Заблокирован
 
Регистрация: 06.04.2008
Сообщений: 17
По умолчанию

Дмитрий вы настоящий человек спасибо вам большое! я вам очень благодарен !!!
[RR]Reaction вне форума Ответить с цитированием
Старый 27.05.2008, 14:22   #7
Банзай
Пользователь
 
Аватар для Банзай
 
Регистрация: 21.08.2007
Сообщений: 89
По умолчанию

нужна помощь, как изменит настройки маркера маркированного списка в RichEdit?
то есть форму, стиль, цвет и т. д.
подписываюсь
Банзай вне форума Ответить с цитированием
Старый 27.05.2008, 21:08   #8
Банзай
Пользователь
 
Аватар для Банзай
 
Регистрация: 21.08.2007
Сообщений: 89
По умолчанию

спасибо, нашёл:
Код:
var
  fmt: TParaFormat2;
begin
  FillChar( fmt, SizeOf( fmt ), 0 );
   fmt.cbSize := SizeOf( fmt );
   fmt.dwMask := PFM_NUMBERING or PFM_NUMBERINGSTART or
                 PFM_NUMBERINGSTYLE or PFM_NUMBERINGTAB;
   fmt.wNumbering := 3;
   // wNumbering:
   // 0 - нет нумерации
   // 1 - маркированный список    (·, ·, ·, ...).
   // 2 - арабские цифры          (1, 2, 3, ...).
   // 3 - маленькие буквы         (a, b, c, ...).
   // 4 - большие буквы           (A, B, C, ...).
   // 5 - маленькие римские цифры (i, ii, iii, ...).
   // 6 - большие римские цифры   (I, II, III, ...).
   // 7 - последовательность символов Unicode
   fmt.wNumberingStart := 1;
   // wNumberingStart:
   //  Число, с которого начинается нумерация.
   fmt.wNumberingStyle :=0;
   // wNumberingStyle:
   // Стиль нумерации
   // 0     :  1)
   // $100  : (1)
   // $200  :  1.
   // $300  :  1
   // $400  : убрать список
   // $8000 : продолжает нумеровать список не изменяя стиля
   fmt.wNumberingTab := 360;
   // wNumberingTab:
   // расстояние между номером и текстом параграфа
   Editor.Perform( EM_SETPARAFORMAT, 0, lParam( @fmt ) );
   //Editor:TRichEdit;
  end;
всем спасибо, все свободны.
подписываюсь

Последний раз редактировалось Банзай; 27.05.2008 в 21:12.
Банзай вне форума Ответить с цитированием
Старый 15.07.2012, 00:55   #9
cartman26rus
 
Регистрация: 07.01.2011
Сообщений: 3
Восклицание

Цитата:
Сообщение от _Dmitry Посмотреть сообщение
Пример с подсветкой комментариев, о чем вы просили в другой теме...
Перезалей плиз, архив битый
cartman26rus вне форума Ответить с цитированием
Старый 15.07.2012, 00:58   #10
cartman26rus
 
Регистрация: 07.01.2011
Сообщений: 3
По умолчанию

Цитата:
Сообщение от _Dmitry Посмотреть сообщение
Пример с подсветкой комментариев, о чем вы просили в другой теме...
А не, не, через хром слил, всё ок
cartman26rus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсветка синтаксиса => Патрон Общие вопросы Delphi 21 03.01.2016 11:48
Новая подсветка синтаксиса Alar О форуме и сайтах клуба 25 06.10.2008 11:15
Подсветка ника, и ip-онлайн Revan Общие вопросы Delphi 1 02.06.2008 20:53
Подсветка Патрон Общие вопросы Delphi 7 27.03.2008 20:27
Подсветка синтаксиса Simply-Art Общие вопросы Delphi 2 29.05.2007 16:22