Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.60
Naidjel
4 / 4 / 0
Регистрация: 20.11.2011
Сообщений: 36
#1

редактор html кода - Delphi

26.11.2011, 15:44. Просмотров 2653. Ответов 10
Метки нет (Все метки)

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

HTML редактор в программе для получения HTML письма - Delphi
Собственно не могу решить проблему с HTML редактором в программе. хочу чтоб можно было делать красивый текст письма сохранять его в html...

HTML редактор - Delphi
Добрый вечер. Пишу HTML редактор, и необходимо, чтобы при написание кода в RichEdit выделялись теги. Как более рационально осуществить это?

Визуальный html-редактор - Delphi
Дайте пример html-РЕДАКТОРА НАПИСАНОГО В DELPHI 7 ИЛИ ИСХОДНИК НАДО ОЧЕНЬ СРОЧНО Добавлено через 4 минуты А лучше помогите в...

Редактор текста в HTML - страничках - Delphi
Всем привет!))) Есть HTML страница где находтся только текст без кнопок, фрэймов и т.д. Нужно зделать учебник на HTML но чтобы его...

Цвет активной строки (редактор кода) - Delphi
Возможно ли, как-то изменить цвет активной строки - rad studio xe2?

Парсинг HTML кода - Delphi
Добрый день! Есть такая </span></a><span class="b_user_menu__item b_drop js_b_drop"><span class="text"><span>Аккаунт</span><span...

10
dtsey
112 / 78 / 8
Регистрация: 10.09.2011
Сообщений: 263
26.11.2011, 16:28 #2
Цитата Сообщение от Naidjel Посмотреть сообщение
Помогите пожалйста! хочу создать не визуальный html редактор в делфи. как сделать чтобы twebbrowser показывал не саму страничку а ее код?
Можно использовать RichEdit, куда потребуется загружать html-код страницы. Делать это просто:
Delphi
1
2
3
4
5
6
7
8
9
10
var h.TIdHttp;
s: string;
begin
h:=TIdHttp.Create(nil);
h.handleredirects:=true;
h.request.useragent:='Mozilla/5.0 (X11; U; Linux i686; cs-CZ; rv:1.7.12) Gecko/20050929';
s:=h.GET('ссылка на страницу');
RichEdit1.Text:=s;
h.free;
end;
Добавлено через 32 секунды
В uses добавь idhttp
1
Naidjel
4 / 4 / 0
Регистрация: 20.11.2011
Сообщений: 36
26.11.2011, 18:13  [ТС] #3
хорошо, а как можно в ричедите сделать автоисправление неправильного написания тэгов хтмл? вообще как можно организовать автоисправление?
0
dtsey
112 / 78 / 8
Регистрация: 10.09.2011
Сообщений: 263
26.11.2011, 18:29 #4
Цитата Сообщение от Naidjel Посмотреть сообщение
хорошо, а как можно в ричедите сделать автоисправление неправильного написания тэгов хтмл? вообще как можно организовать автоисправление?
Ну, здесь как минимум - работа с регулярными выражениями, кучей случаев и т.д. Вам нужно будет по сути обучить программу. Это довольно сложно...
0
Naidjel
4 / 4 / 0
Регистрация: 20.11.2011
Сообщений: 36
26.11.2011, 18:32  [ТС] #5
это как раз понятно)) а можно хотя бы какой маленький примерчик?) например, чтобы <bady>на <body> исправлял?
0
digim0n
84 / 84 / 1
Регистрация: 11.11.2011
Сообщений: 259
26.11.2011, 18:44 #6
Naidjel, вариантов есть множиство... например...
*- выделение др цветом, для того что бы ты обратил внимание... (таймер ищет предполагаемые ошибки и выделяет их др цветом)
*- автоисправление...(тут уже нужно указывать варианты ошибок и тоже по таймеру будут они сами правиться без участия юзера... например если ты написал <bodi> или <bode> и т.д..., а нужно <body> тогда ищется текст и заменяется на правельный)...
Delphi
1
2
html.text:=StringReplace(html.text, '<bodi>', '<body>',[rfReplaceAll, rfIgnoreCase]);
html.text:=StringReplace(html.text, '<bode>', '<body>',[rfReplaceAll, rfIgnoreCase]);
что бы по стопятсот раз не вызывать стрингреплейс, можно создать список ошибок и список правильного написания, а затем пустить его на автозамену...
Delphi
1
2
3
4
5
6
7
8
var
   i:integer;
begin
//ListBox1.Text - список всевозможных неправильных написаний например тега <body>
for i:=0 to ListBox1.Items.Count-1 do begin
html.text:=html.text:=StringReplace(html.text,ListBox1.Items[i], '<body>',[rfReplaceAll, rfIgnoreCase]);
end;
end;
*- полуавтоисправление... поиск предполагаемых ошибок и запрос на их исправление... (поиск ошибок по нажатию на клавишу, например, "Проверить ошибки"... текст ищется и выдается запрос на поправку... а ты уже подтверждаеш или, если ты уверен на 100%, отменяеш редактирование...)
1
Naidjel
4 / 4 / 0
Регистрация: 20.11.2011
Сообщений: 36
26.11.2011, 19:05  [ТС] #7
а подсветку тэгов как сделать?
0
digim0n
84 / 84 / 1
Регистрация: 11.11.2011
Сообщений: 259
26.11.2011, 21:15 #8
Naidjel, в RichEdit можно: SelStart, SelLength, SelAttributes.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const
  word: array[1..18] of string[9] = ('<html>','</html>','<body>','</body','<b>','</b>','<i>',
    '</i>','<center>','</center>','<form','</form>','<tag>','</tag>','<br>','</br>','<tr>',
    '</tr>');
var
  k,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];
        Application.ProcessMessages;
      until k < 0;
    end;
end;
0
Naidjel
4 / 4 / 0
Регистрация: 20.11.2011
Сообщений: 36
26.11.2011, 22:52  [ТС] #9
пасиб всем ребята, вы очень мне помогаете!) а вот еще вопрос: я так думаю, что базу исправлений надо делать через цикл, который в каждом тэге вместо разных букв, которые в него входят перечисляет весь алфавит. причем цикл както должен смотреть сколько букв в тэге и иметь какойто лимит исправлений. ну чтото типа если в теге <body>3 буквы неправильных, значит пользователь чтото другое имеет ввиду)
это можно както реализовать?

Добавлено через 1 час 0 минут
а вот еще вопрос: как вставить адрес картинки туда где курсор стоит. Пишу
RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName);
выдает ошибку.
0
dtsey
112 / 78 / 8
Регистрация: 10.09.2011
Сообщений: 263
26.11.2011, 22:55 #10
Вам придется брать каждое слово в <>, сравнивать его со всеми вариантами всех тегов, искать необходимый и заменять...
Это довольно муторно, ибо тэгов очень много, а количество вариаций их ошибок - ...
Алсо, почитайте о pos и RegExpr
0
Naidjel
4 / 4 / 0
Регистрация: 20.11.2011
Сообщений: 36
27.11.2011, 12:37  [ТС] #11
ну а как насчет второго вопроса про адрес картинки?

Добавлено через 1 час 15 минут
Кстати, как я понял, при автозамене программа ориентируется не на ошибки, а на количество совпадающих символов в тэге. То есть, алгоритм работы автозамены гдето такой:
1. изначально в программе несколько массивов с тэгами по количеству символов
2. ищем "<" или "<[пробел]"
3. подсчитываем количество символов попавшегося тэга
4. задаем условие количества совпадающих символов (если символов 10 или 9, то минимум 5 символов должны совпадать, у 8,7 совпадают 4; 6,5 - 3; 4,3 -2
5.исправим на правильный тэг


А вот как это все написать кодом?)

Добавлено через 11 часов 50 минут
ни у кого нету идей?))
0
27.11.2011, 12:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2011, 12:37
Привет! Вот еще темы с ответами:

просмотр html-кода - Delphi
Имеется браузер и пара кнопок, одна из которых открывает страничку. Помогите плиз сделать так, чтобы при нажатии на второй баттон...

Форматирование HTML кода - Delphi
Вообщем пишу на дельфях прогу, смысл в том, что бы имея, например, вот такой код &lt;HTML&gt;&lt;BODY&gt;&lt;/BODY&gt;&lt;/HTML&gt; получить, вот такой код ...

Парсинг HTML кода - Delphi
Добрый день! Есть такой &lt;span class=&quot;ui-button-text&quot;&gt; купить за 2820.31 едениц. &lt;span class=&quot;money&quot;&gt;()&lt;/span&gt; ...

Запись кода в файл html - Delphi
Здравствуйте! Моя программка генерирует однотипные математические выражения в том количестве, которое потребует пользователь. И записывает...


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

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

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