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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2009, 11:54   #11
drknn
Пользователь
 
Аватар для drknn
 
Регистрация: 02.09.2007
Сообщений: 51
По умолчанию

Цитата:
Сообщение от jocry Посмотреть сообщение
Для подсветки различных синтаксисов есть хороший компонент SynEdit, а также он имеет много дополнительных функции к примеру разворачивающие меню как в delphi при нажатии Ctrl+пробел
Скачал эту штуку с сайта производителя http://internap.dl.sourceforge.net/s...Edit-2_0_6.zip Не инсталлируется - выдаёт какую-то ошибку.
drknn вне форума Ответить с цитированием
Старый 05.03.2011, 16:07   #12
booble
 
Регистрация: 05.03.2011
Сообщений: 4
По умолчанию

Люди добрые помогите пожалуйста сделать подсветку в RichEdit'e
всех тегов красным цветом. Действовать должно примерно так, если в тексте найден тег '<' тогда все в нем закрашивается красным цветом пока не встретиться закрывающийся тег '>'. Я полностью знаю как должен работать алгоритм, но не могу реализовать никак его. Если что пишите на мыло Derec92@gmail.com жду ответа

Надеюсь на помощь.
booble вне форума Ответить с цитированием
Старый 05.03.2011, 21:41   #13
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

RichView нужно использовать.
Пример - http://www.programmersforum.ru/showthread.php?t=120429 (DFaq.rar)
Компонент-поле справа - RichView.
asmodey1 вне форума Ответить с цитированием
Старый 06.03.2011, 01:49   #14
booble
 
Регистрация: 05.03.2011
Сообщений: 4
По умолчанию

Обидно что знаю как все надо делать а вот как реализовать код всмысле не могу, плохо с дельфи у меня новичек еще
Весь интернет облазил и везде нету нормальных примеров, то с масивом констант, то недоработанные.

Код:
var
  I : LongInt;
Pos, Leng : LongInt;

begin
  I := 1;
  if  (key='<') then
   begin
   Pos := I - 1;
   while (key <> '>')  do
   I := I + 1;
Leng := I - Pos;
RichEdit1.SelStart := Pos;
RichEdit1.SelLength := Leng;
RichEdit1.SelAttributes.Color := clRed;
    end;
    end;
Вот обрывок кода, делаю в процедуре keypress, может исправите?

Последний раз редактировалось Stilet; 06.03.2011 в 11:57.
booble вне форума Ответить с цитированием
Старый 06.03.2011, 11:43   #15
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

наверно зависает, потому что не заканчиваеца цикл
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 06.03.2011, 12:01   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не наверное а точно.
Обработчик нажатия клавиши принимает только одну клавишу, и пока он не отработан другая (нажатие) принято не будет
Pos, Leng : LongInt; сделай глобальными.
Код:
 
 if  (key='<') then   Pos := I - 1;
 if  (key='>') then with RichEdit1 do  begin
   SelStart := Pos;
   SelLength := i-Pos;
   SelAttributes.Color := clRed;
 end;
Ито эта стратегия не самая лучшая, но раз уж ты ее выбрал то действуй.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.03.2011, 23:50   #17
booble
 
Регистрация: 05.03.2011
Сообщений: 4
По умолчанию

Код:
procedure TForm1.RichEdit1Change(Sender: TObject);
var p,col,temp: integer;
    r:string;
    b:boolean;
begin
b:= false;
p:=0;
col:=RichEdit1.SelStart;
r:=RichEdit1.Text;
if r <> '' then begin
  if p < temp then b:=false;
  if not(b=false) then p:=col-1;
  repeat
    if r[p] = '<' then begin
      b:=true;
      temp:=p - 1;
      RichEdit1.SelStart:=p-1;

        repeat
          if p <> Length(r) then begin
            p:=p+1;
            if r[p] = '>' then begin
              RichEdit1.SelLength:=p - temp;
              RichEdit1.SelAttributes.Color:=clRed;
              b:=false;
            end
            else RichEdit1.SelAttributes.Color:=clBlack;
          end;
        until (r[p] = '>')or(p=Length(r));
      end;

    p:=p+1;
  until p=Length(r)+1;
  RichEdit1.SelStart:=col;
  RichEdit1.SelAttributes.Color:=clBlack;
end;
end;

end.
Ребят где исправить нужно? если ввести
1. автомашина </table> - красит нормально, слово черным, тег красным

2. авто <table> машина </table> - авто черным, остальное красным

Происходит это когда я в обычный текст вставляю еще один тег

Последний раз редактировалось booble; 07.03.2011 в 12:25.
booble вне форума Ответить с цитированием
Старый 08.03.2011, 11:57   #18
booble
 
Регистрация: 05.03.2011
Сообщений: 4
По умолчанию

Ну как есть идеи?
booble вне форума Ответить с цитированием
Старый 28.12.2015, 15:48   #19
Маховик
Новичок
Джуниор
 
Аватар для Маховик
 
Регистрация: 10.07.2013
Сообщений: 7
По умолчанию Подсветка синтаксиса в простом Memo

В Memo никак? А как тебе это?

http://www.programmersforum.ru/showt...%E8%F1%E0+Memo

Save.jpg

Вот мой исходник. Подсветка комментариев не предусмотрена, если знаешь как это сделать, пожалуйста подскажи...
Вложения
Тип файла: rar SyntaxMemo.rar (200.3 Кб, 21 просмотров)
Маховик вне форума Ответить с цитированием
Старый 28.12.2015, 23:06   #20
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Хоспади... некрофилы набежали. 5 лет прошло, где все это время был-то?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Новая подсветка синтаксиса Alar О форуме и сайтах клуба 25 06.10.2008 11:15
Подсветка Патрон Общие вопросы Delphi 7 27.03.2008 20:27
Подсветка синтаксиса Simply-Art Общие вопросы Delphi 2 29.05.2007 16:22
Компонент для подсветки синтаксиса das-xp Компоненты Delphi 1 19.05.2007 21:03