Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi
Войти
Регистрация
Восстановить пароль
 
Илья01
10 / 10 / 5
Регистрация: 30.12.2010
Сообщений: 379
#1

Программа для подкраски html кода, процедура написана, незациклить( - Delphi

24.08.2012, 15:45. Просмотров 475. Ответов 2
Метки нет (Все метки)

Здравствуйте, делаю программа для подсвечивания html кода. Код находится в rich editor'e, функция меняет цвет букв.
Вот функция:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
label 1,2;
var
  i,one,two:integer;
  s,text:string;
begin
  form1.redt1.SelStart := 0;
  form1.redt1.SelLength := length(form1.redt1.text);
  form1.redt1.SelAttributes.Color := rgb(0,0,0);
  i:=0;
  1:
  repeat
    i:=i+1;
    s:=copy(form1.redt1.Text,i,1);
  until (copy(form1.redt1.Text,i,1)='"') or (ords(s)=39) or (copy(form1.redt1.Text,i,1)='>') or (copy(form1.redt1.Text,i,1)='<') or (i>length(form1.redt1.text));
  if (copy(form1.redt1.Text,i,1)='<') then begin
    form1.redt1.SelStart := i-1;
    form1.redt1.SelLength := 1;
    form1.redt1.SelAttributes.Color := rgb(0,0,250);
    repeat
      i:=i+1;
    until (copy(form1.redt1.Text,i,1)<>' ') or (i>length(form1.redt1.text));
    one:=i;
    //s:='';
    repeat
      i:=i+1;
    until (copy(form1.redt1.text,i,1)=' ') or (copy(form1.redt1.text,i,1)='>') or (copy(form1.redt1.text,i,1)='<') or (i>length(form1.redt1.Text));
    form1.redt1.SelStart := one-1;
    form1.redt1.SelLength := i-one;
    form1.redt1.SelAttributes.Color := rgb(250,0,0);
    i:=i-1;
    goto 1;
  end;
  if (copy(form1.redt1.Text,i,1)='>') then begin
    form1.redt1.SelStart := i-1;
    form1.redt1.SelLength := 1;
    form1.redt1.SelAttributes.Color := rgb(0,0,250);
    goto 1;
  end;
  s:=copy(form1.redt1.Text,i,1);
  if (copy(form1.redt1.Text,i,1)='"') or (ords(s)=39) then begin
    one:=i;
    repeat
      i:=i+1;
      s:=copy(form1.redt1.Text,i,1);
    until (s='"') or (ord(s[1])=39) or (ords(s)=13) or (i>length(form1.redt1.text));
    s:=copy(form1.redt1.Text,i,1);
    if (s='"') or (ord(s[1])=39) or (ords(s)=13) then begin
      form1.redt1.SelStart := one-1;
      form1.redt1.SelLength := i-one+1;
      form1.redt1.SelAttributes.Color := rgb(150,50,0);
    end;
    goto 1;
  end;
  2:
end;
Приложил архив в котором эта функция срабатывает по нажатию кнопки.
Мне нужно сделать чтобы не нужно было все время нажимать на эту кнопку. Я хотел зациклить эту процедуру в отдельном потоке (если html код длинный то тормозил без потока) но этого не получилась, это я тоже приложил.

Помогите пожалуйста, как осуществить такое зацикливание?
0
Вложения
Тип файла: zip архив с исходниками.zip (419.3 Кб, 5 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2012, 15:45
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Программа для подкраски html кода, процедура написана, незациклить( (Delphi):

На каком языке написана программа?
ПРивет!Я скачал программу Restorator 2007 которая позволяет редактировать Re...

Простая программа на дельфи для распознания QR-кода
Здарова всем. Нужна простая программа/или пример, на дельфи для распознания...

Декомпиляция АРМ программа написана на Delphi 7
Здравствуйте!Помогите пожалуйста получить полный доступ на редактирование, буду...

Циклы: правильно ли написана программа?
Лабораторная работа по циклам: 1.Дано целое число N(&gt;1). Последовательность...

Программа для парсинга HTML кода
Изучал с++, теперь хочу создавать приложения с интерфейсом. Выбрал windows...

Программа для изменения html кода в браузере страниц
программа для изменения html кода в браузере страниц.есть ли такая программа

2
Илья01
10 / 10 / 5
Регистрация: 30.12.2010
Сообщений: 379
24.08.2012, 18:00  [ТС] #2
Я прикрутил ф-ю в нажатие клавиши, вопрос исчерпан.
У меня возник другой, не подскажите, можно ли менять цвет текста не выделяя его так:
Delphi
1
2
3
form1.redt1.SelStart := 1;
form1.redt1.SelLength := 5;
form1.redt1.SelAttributes.Color := rgb(150,50,0);
?

Добавлено через 15 минут
все, второй вопрос тоже решен, модры, удалите кто нибудь вопрос

Добавлено через 12 секунд
все, второй вопрос тоже решен, модры, удалите кто нибудь вопрос
0
Alex_pac
1291 / 697 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
24.08.2012, 21:21 #3
SynEdit компонент подсветки кода. На нем написан Notepad++

для версий до 2007 http://sourceforge.net/projects/syne...le%20Releases/
для версий с юникодом (от 2009) http://mh-nexus.de/downloads/UniSynEdit.zip

http://tlt-images1.narod.ru/img/4eb83b7d79100.jpg << скриншот
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.08.2012, 21:21
Привет! Вот еще темы с решениями:

Программа для трёх маршрутов. Правильно ли написана программа?
Всем здрасьте! Программа для трёх маршрутов. Кому не сложно подскажите...

Правильно ли написана общая процедура
Посмотрите пожалуйста правильно ли написана процедура. Просто когда вызываю её...

Правильно ли написана процедура добавления элемента в конец очереди?
правильная процедура добавления элемента в конец очереди? подскажите...

Какая процедура для чтения html с диска webbrowser?
Вот пример webbrowser в строке if Key = VK_RETURN then ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru