Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

[Delphi6]подсветка HTML

Здравствуйте!
Как можно подсветить HTML теги в richedit'е?
Может у кого-нибудь есть пример?

Ответить   Wed, 5 May 2004 22:19:44 +0300 (#139679)

 

Ответы:

Здоровеньки булы, keel!

6 мая 2004 г., четверг, 00:19:44 (GMT+05:00), пришел ко мне
почтальон Почкин и всучил письмо с пометкой "[Delphi6]подсветка HTML",
в котором сообщалось следующее:

А что там особенного?
Ищешь '<' - pos('<', s)
Ищешь '>' - pos('>', s)
Richedit.SelStart
Richedit.SelLength
Richedit.SelAttributes.Color
Затем ищешь следующее вхождение '<'

PS: Я не стал делать обработку тегов такого типа
<iframe
bla-bla-bla

т.е. которые начинаются на одной строке, а заканчиваются на другой.
Надо же что-то тебе и самому написать ;)
PPS: Я не понял что это за косяк, но прикол еще тот:
Если обрабатывается текст который не виден на экране (скролить
надо) - то он не меняет цвет.
PPPS: Данный код написан за ~ 20 минут, ногами не пинать.

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
StartS: integer;
EndS: integer;
MovePlus: integer;
Len: integer;
s: string;
begin
try
Richedit1.SelAttributes.Color := clBlue;
RichEdit1.Lines.BeginUpdate;
MovePlus := 0;
for i := 0 to RichEdit1.Lines.Count - 1 do
begin
s := RichEdit1.Lines[i];
Len := Length(s);
while pos('<', s) <> 0 do
begin
StartS := pos('<', s);
Richedit1.SelStart := i + MovePlus + StartS - 1;
EndS := pos('>', s);
if EndS <> 0 then
begin
Richedit1.SelAttributes.Color := clBlue;
Richedit1.SelLength := EndS - StartS + 1;
Richedit1.SelAttributes.Color := clBlue;
end;
s := copy(s, 1, StartS - 1) + '#' + copy(s, StartS + 1, Len);
s := copy(s, 1, EndS - 1) + '#' + copy(s, EndS + 1, Len)
end;
MovePlus := MovePlus + Len + 1;
end;
finally
RichEdit1.Lines.EndUpdate;
RichEdit1.Font.Color := clBlack;
end;
end;

Ответить   Томилов Александр Thu, 6 May 2004 23:15:46 +0500 (#140192)

 

Hello Томилов,

Thursday, May 6, 2004, 10:15:46 PM, you wrote:

Пристально исходник не изучал, но сдается мне, что он неправильно
подсветит, к примеру
<code>< text</code>
или
<a href='javascript: alert(">;->");'>click</a>

Ответить   Fri, 7 May 2004 08:20:41 +0400 (#140650)

 

Здоровеньки булы, Grief!

7 мая 2004 г., пятница, 09:20:41 (GMT+05:00), пришел ко мне
почтальон Почкин и всучил письмо с пометкой "[Delphi6]подсветка HTML",
в котором сообщалось следующее:

Ну блин я же общий принцип привел а не готовую к продаже прогу. Да и
html я не увлекаюсь поэтому и не подумал о существовании таких
случаев.

Ответить   Томилов Александр Sat, 8 May 2004 14:24:44 +0500 (#140814)