Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.11.2010, 12:31
Аватар для Voron
Voron Voron вне форума
Новичок
 
Регистрация: 16.09.2010
Сообщения: 61
Репутация: 10
Вопрос Редактор кода

Кто подскажет, как сделать так чтобы в RichEdit при вводе текста определенные слова выделялись полужирным стилем как в редакторе кода.
Ответить с цитированием
  #2  
Старый 06.11.2010, 12:42
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Цитата:
Сообщение от Voron
Кто подскажет, как сделать так чтобы в RichEdit при вводе текста определенные слова выделялись полужирным стилем как в редакторе кода.
Вот тебе код, который выделяет синтаксис языка делфи:
Код:
procedure TForm1.Button1Click(Sender: TObject);
const   
  word: array[1..32] of string[15] = ('if','then','else','begin','end','for','to',
    'do','while','repeat','until','case','of','type','var','const','procedure',   
    'function','array','string','unit','interface','uses','class','private',
    'public','implementation','in','and','or','xor','not');
  comment: array[1..6] of string[2] = ('{','}','(*','*)','//',#13#10);
var
  k,k1,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];
        RichEdit1.SelAttributes.Color:=clNavy;
      until k < 0;
    end;
  for i:=0 to 2 do
    begin
      k1:=-length(comment[i*2+1]);
      repeat
        k:=k1;
        k:=RichEdit1.FindText(comment[i*2+1],k+length(comment[i*2+1]),
           length(RichEdit1.Text)-k-length(comment[i*2+1]),[stMatchCase]);
        k1:=RichEdit1.FindText(comment[i*2+2],k+length(comment[i*2+2]),
            length(RichEdit1.Text)-k-length(comment[i*2+2]),[stMatchCase]);
        RichEdit1.SelStart:=k;
        RichEdit1.SelLength:=k1-k+length(comment[i*2+2]);
        RichEdit1.SelAttributes.Style:=[fsItalic];
        RichEdit1.SelAttributes.Color:=clNavy;
      until k < 0;
    end;
end;
__________________
Помогаю за Спасибо
Ответить с цитированием
  #3  
Старый 06.11.2010, 21:37
Аватар для Voron
Voron Voron вне форума
Новичок
 
Регистрация: 16.09.2010
Сообщения: 61
Репутация: 10
По умолчанию RE:-)

Большое спасибо, очень помогло!
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:59.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter