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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2009, 22:55   #1
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию ПОдсветка тегов в RichEdit (Delphi)

Код:
procedure HTMLSyntax(RichEdit: TRichEdit; TextCol,
  TagCol, DopCol: TColor); 
var  
  i, iDop: Integer; 
  s: string; 
  Col: TColor; 
  isTag, isDop: Boolean; 
begin 
  iDop := 0; 
  isDop := False; 
  isTag := False; 
  Col := TextCol; 
  RichEdit.SetFocus; 
  for i := 0 to Length(RichEdit.Text) do 
  begin 
    RichEdit.SelStart := i; 
    RichEdit.SelLength := 1; 
    s := RichEdit.SelText; 
    if (s = '<') or (s = '{') then isTag := True; 
    if isTag then 
      if (s = '"') then 
        if not isDop then 
        begin 
          iDop  := 1; 
          isDop := True; 
        end  
        else 
          isDop := False; 
    if isTag then 
      if isDop then 
      begin 
        if iDop <> 1 then Col := DopCol; 
      end  
      else 
        Col := TagCol 
    else 
      Col := TextCol; 
    RichEdit.SelAttributes.Color := Col; 
    iDop := 0; 
    if (s = '>') or (s = '}') then isTag := False; 
  end; 
   
  RichEdit.SelLength := 0; 
end; 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
  RichEdit1.Lines.BeginUpdate; 
  HTMLSyntax(RichEdit1, clBlue, clRed, clGreen); 
  RichEdit1.Lines.EndUpdate; 
end;
Этот код поставил. Но он работает лишь при нажатии на кнопку. А мне надо, чтобы теги были подсвечены без нажатия на кнопку.
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics
grom333 вне форума Ответить с цитированием
Старый 30.08.2009, 22:57   #2
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Засунте его в таймер или на событие Key_down и будет вам счастье
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 30.08.2009, 23:12   #3
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию

да вроде в таймере так же пока не нажмешь на Rich Edit

а не запахал, спасибо. +

Извиняюсь тысячу раз.
Я поставил на таймер этот код:
Код:
 RichEdit1.Lines.BeginUpdate; 
  HTMLSyntax(RichEdit1, clBlue, clRed, clGreen); 
  RichEdit1.Lines.EndUpdate; 
end;
У меня на последнюю строку курсор выпрыгивает и моргает постоянно, не дает печатать.
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics

Последний раз редактировалось Stilet; 31.08.2009 в 10:11.
grom333 вне форума Ответить с цитированием
Старый 31.08.2009, 00:16   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer; 
begin 
  i:=RichEdit1.SelStart;
  RichEdit1.Lines.BeginUpdate; 
  HTMLSyntax(RichEdit1, clBlue, clRed, clGreen); 
  RichEdit1.Lines.EndUpdate; 
  RichEdit1.SelStart:=i;
end;
типа такого(об оптимальности промолчу)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
3d облако тегов serega_od PHP 5 20.07.2009 15:37
Подсветка найденного слово в RichEdit`e NirvaN Помощь студентам 2 13.06.2009 17:31
RichEdit в Delphi Valerich Помощь студентам 0 02.05.2009 13:53
html- извлеч значения из тегов idem_id Помощь студентам 3 08.04.2009 19:56
как качнуть из тегов текст в memo Лёка Работа с сетью в Delphi 4 03.02.2008 19:46