Существует ли кросплатформенный компонент html с utf-8 ?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Существует ли кросплатформенный компонент html с utf-8 ?

Сообщение Pisklov_A » 30.03.2016 14:03:29

Приветствую вас.

Минимум надо что бы работало lin\win
Достаточно что бы воспринимал минимальный набор тегов.
Компонент должен получать данные НЕ из веба или файла на диске, а желательно что бы принимал строку как параметр.
В идеале было бы хорошо, что бы он еврейские и арабские закорючки с права на лево рисовал.

Пробовал THtmlPort:
Под виндами норм.
В линуксе новая версия при добавлении на форму THtmlViewer, аварийно завершает лазарус. Старая версия не компилируется.
Я думаю он не кросплатформенный.

LazActiveX LazWebKit не серьёзно.

GeckoPort как я понимаю требует наличия браузера, плюс мозиловцы от этого движка отказываются.

turbopower internet pro как я понял не поддерживает utf-8, или как то странно себя ведёт под linux, хотя тут вопрос ... может я где ошибся.

Есть две фиговины которые я не смотрел:

fpCEF3 как то не тдоверия, как то нет гарантии что оно жить будет нормально и длолго. А оно завязано за бибилиотеки, а их под каждый дистр линукса надо как то собирать, как я понимаю.

QT Webkit не пробоваал, т.к. не знаю насколько хорошо lazarus поддерживает qt.

Если есть какие то мысли, прошу высказываться.
Pisklov_A
новенький
 
Сообщения: 26
Зарегистрирован: 20.10.2006 16:09:08

Re: Существует ли кросплатформенный компонент html с utf-8 ?

Сообщение Снег Север » 30.03.2016 15:27:07

сам интересуюсь, ибо ничего толкового не нашел
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3053
Зарегистрирован: 27.11.2007 16:14:47

Re: Существует ли кросплатформенный компонент html с utf-8 ?

Сообщение скалогрыз » 30.03.2016 15:59:11

Pisklov_A писал(а):Компонент должен получать данные НЕ из веба или файла на диске, а желательно что бы принимал строку как параметр.
В идеале было бы хорошо, что бы он еврейские и арабские закорючки с права на лево рисовал.

а картинки рисовать нужно или только текст?

Если последнее, то можешь попробовать прикрутить RichMemo.
зато еврейские и арабские закорючки с права на лево рисовал обеспечены системой.
Нативная поддержка html-я отсутствует (кроме Qt, там при желании можно подгрузить html), зато есть пример "mlparse", где подгружается html подобная разметка.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Существует ли кросплатформенный компонент html с utf-8 ?

Сообщение Pisklov_A » 30.03.2016 16:30:59

только текст.
Pisklov_A
новенький
 
Сообщения: 26
Зарегистрирован: 20.10.2006 16:09:08

Re: Существует ли кросплатформенный компонент html с utf-8 ?

Сообщение скалогрыз » 30.03.2016 16:34:12

Pisklov_A писал(а):только текст.

тогда richmemo рекомендую.
Да, возможно прикручивать "минимальный набор тегов" может быть не приятно, но если этот набор "минимальный", то я могу помочь :)

основной плюс richmemo:
* основан на системном компонентем - не нужно таскать с собой библиотеку/браузер
* поддержка юникода и дальне и блежневосточных текстов, чем не каждый самописный компонент может похвастатся

Если нужны гипертектсовые ссылки (т.е. некий текст, с которым связан некий адрес и при нажатии на этот текст, вызывается событие где можно узнать и адрес и сам текст который был нажат), то их добавление в richmemo тоже можно завершить. Они начаты но не доделаны :)
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Существует ли кросплатформенный компонент html с utf-8 ?

Сообщение Pisklov_A » 30.03.2016 16:45:57

я понял, что вы автор этого компонента.

Задам вопрос.
Если я сделаю двойной клик на слове , можно как то будет отследить по какому слову был совершен даблклик?

И философский вопрос... возможности лазаруса сильно ограничены, регулярно что то подглючивает, почему вы им занимаетесь? Мне просто интересна мотивация.

Добавлено спустя 7 минут 24 секунды:
Вот это брать ? https://havefunsoft.com/share/richmemo.zip
Pisklov_A
новенький
 
Сообщения: 26
Зарегистрирован: 20.10.2006 16:09:08

Re: Существует ли кросплатформенный компонент html с utf-8 ?

Сообщение kazalex » 30.03.2016 16:54:31

Pisklov_A писал(а):Пробовал THtmlPort:
Под виндами норм.
В линуксе новая версия при добавлении на форму THtmlViewer, аварийно завершает лазарус. Старая версия не компилируется.
Я думаю он не кросплатформенный.

Я сам не пробовал, но разработчик HtmlViewer говорит, что под линуксом уже работает.
Последний раз редактировалось kazalex 30.03.2016 16:56:23, всего редактировалось 1 раз.
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Re: Существует ли кросплатформенный компонент html с utf-8 ?

Сообщение скалогрыз » 30.03.2016 16:55:29

Pisklov_A писал(а):Если я сделаю двойной клик на слове , можно как то будет отследить по какому слову был совершен даблклик?

SelStart должен поидее быть на этом самом слове.
CharAtPos() метод вернёт слово по указанным X,Y координатам

Pisklov_A писал(а):И философский вопрос... возможности лазаруса сильно ограничены, регулярно что то подглючивает, почему вы им занимаетесь? Мне просто интересна мотивация.

Философский ответ - а что не подглючивает регулярно? :D

На самом деле, сказывается ограниченность кругозора - меня научили писать на паскале / делфях. Больше ничего и не умею.
А раз не умею, то продолжаю делать, то что делаю :mrgreen:

Потребность в компоненте с поддержкой (хотя бы минимального) форматирования текста была всегда и почему бы мне не её не написать.
Кстати, начал я RichMemo ещё в 2008/2009 году, в бытность свою фрилансером, когда один из заказов потребовал наличие такого компонента. (Заказ требовал кроссплатформенного приложения для мака и винды, и на тот момент выбор Лазаруса был актуален)

Добавлено спустя 4 минуты 20 секунд:
Pisklov_A писал(а):Вот это брать ? https://havefunsoft.com/share/richmemo.zip

да, это он.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Существует ли кросплатформенный компонент html с utf-8 ?

Сообщение Pisklov_A » 31.03.2016 00:34:44

kazalex писал(а): сам не пробовал, но разработчик HtmlViewer говорит, что под линуксом уже работает.

Я не специалист, но скаченный HtmlViewer-HtmlViewer-11.6-to-11.7.zip при компиляции выдаёт сообщение об ошибке.

Добавлено спустя 42 минуты 38 секунд:
скалогрыз писал(а):тогда richmemo рекомендую.

Вроде бы годный.
Pisklov_A
новенький
 
Сообщения: 26
Зарегистрирован: 20.10.2006 16:09:08

Re: Существует ли кросплатформенный компонент html с utf-8 ?

Сообщение Максим » 31.03.2016 02:25:50

Turbopower IPro. Имеется в стандартной поставке Lazarus. Насчёт Юникода не проверял, но в его исходниках имеется обработка UTF-8.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Существует ли кросплатформенный компонент html с utf-8 ?

Сообщение скалогрыз » 31.03.2016 06:29:59

а вот ещё есть KMemo
есть ли там хоть какая-то поддержка html, не знаю. И вряд ли развита поддержка восточных языков
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Существует ли кросплатформенный компонент html с utf-8 ?

Сообщение sign » 31.03.2016 07:27:22

Pisklov_A писал(а):Минимум надо что бы работало lin\win
Достаточно что бы воспринимал минимальный набор тегов.
Компонент должен получать данные НЕ из веба или файла на диске, а желательно что бы принимал строку как параметр.

Стандартные компоненты - TIpHtmlPanel и TIpFileDataProvider
Вот у меня:
Код: Выделить всё
function TfShowProduct.SetData(Data: PPrice): Boolean;
var S, sHead, sPic, sBody, sEnd: String;
begin
  Result := False;
  if not Assigned(Data) then Exit(False);
  if Data^.Is_Title then Exit(False);
  sHead :=  '<html>' +
            '<head>' +
            '  <meta http-equiv="content-type" content="text/html; charset=windows-1251">' +
            '</head>' +
            '<body text="#000000" bgcolor="#ffffff" background="">';
  S := CNameDir[Data^.Firm];
  sPic := '';
  if S > '' then begin
    sPic := Format('%s%s\pic\%d.jpg', [Param.PathToPicture, S, Data^.UNP]);
    if not FileExistsUTF8(sPic) then begin
      sPic := Format('%s%s\pic\%d.png', [Param.PathToPicture, S, Data^.UNP]);
      if not FileExistsUTF8(sPic) then sPic := '';
    end;
  end;
  if sPic > '' then sPic := Format('<img src="%s" border=0 align=right hspace=20>', [sPic])
  sBody := Data^.Note;
  sEnd :=   '</body></html>';
  FText := sHead + sPic + sBody + sEnd;
  htmlShow.SetHtmlFromStr(FText);
  Result := True;
end;   


Результат:

1.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Существует ли кросплатформенный компонент html с utf-8 ?

Сообщение Pisklov_A » 31.03.2016 16:20:27

sign писал(а): TIpHtmlPanel


по моему utf-8 нельзя .. но я могу ошибаться. А вообще у меня уже выбор двух компонентов HtmlViewer и RichMemo второй мне пока более симпатичен.

Автор HtmlViewer-HtmlViewer-11.6-to-11.7.zip после моей жалобы вчера вроде пофиксил проблему, хотя я ещё не проверял, линукс только дома.

p.s.

Компилируется но не работает, вешает лазарус при добавлении на форму.
Последний раз редактировалось Pisklov_A 03.04.2016 02:23:08, всего редактировалось 1 раз.
Pisklov_A
новенький
 
Сообщения: 26
Зарегистрирован: 20.10.2006 16:09:08

Re: Существует ли кросплатформенный компонент html с utf-8 ?

Сообщение sign » 01.04.2016 11:20:23

Pisklov_A писал(а):о моему utf-8 нельзя

У меня редактор в utf8, соответственно и строки в utf8

1.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Существует ли кросплатформенный компонент html с utf-8 ?

Сообщение Pisklov_A » 03.04.2016 02:18:33

sign писал(а):У меня редактор в utf8, соответственно и строки в utf8


Я конечно ваш пример не пробовал.. но у вас в коде 1251

' <meta http-equiv="content-type" content="text/html; charset=windows-1251">'
Pisklov_A
новенький
 
Сообщения: 26
Зарегистрирован: 20.10.2006 16:09:08

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 235

Рейтинг@Mail.ru