Существует ли кросплатформенный компонент html с utf-8 ?
Модератор: Модераторы
Существует ли кросплатформенный компонент html с utf-8 ?
Приветствую вас.
Минимум надо что бы работало lin\win
Достаточно что бы воспринимал минимальный набор тегов.
Компонент должен получать данные НЕ из веба или файла на диске, а желательно что бы принимал строку как параметр.
В идеале было бы хорошо, что бы он еврейские и арабские закорючки с права на лево рисовал.
Пробовал THtmlPort:
Под виндами норм.
В линуксе новая версия при добавлении на форму THtmlViewer, аварийно завершает лазарус. Старая версия не компилируется.
Я думаю он не кросплатформенный.
LazActiveX LazWebKit не серьёзно.
GeckoPort как я понимаю требует наличия браузера, плюс мозиловцы от этого движка отказываются.
turbopower internet pro как я понял не поддерживает utf-8, или как то странно себя ведёт под linux, хотя тут вопрос ... может я где ошибся.
Есть две фиговины которые я не смотрел:
fpCEF3 как то не тдоверия, как то нет гарантии что оно жить будет нормально и длолго. А оно завязано за бибилиотеки, а их под каждый дистр линукса надо как то собирать, как я понимаю.
QT Webkit не пробоваал, т.к. не знаю насколько хорошо lazarus поддерживает qt.
Если есть какие то мысли, прошу высказываться.
Минимум надо что бы работало lin\win
Достаточно что бы воспринимал минимальный набор тегов.
Компонент должен получать данные НЕ из веба или файла на диске, а желательно что бы принимал строку как параметр.
В идеале было бы хорошо, что бы он еврейские и арабские закорючки с права на лево рисовал.
Пробовал THtmlPort:
Под виндами норм.
В линуксе новая версия при добавлении на форму THtmlViewer, аварийно завершает лазарус. Старая версия не компилируется.
Я думаю он не кросплатформенный.
LazActiveX LazWebKit не серьёзно.
GeckoPort как я понимаю требует наличия браузера, плюс мозиловцы от этого движка отказываются.
turbopower internet pro как я понял не поддерживает utf-8, или как то странно себя ведёт под linux, хотя тут вопрос ... может я где ошибся.
Есть две фиговины которые я не смотрел:
fpCEF3 как то не тдоверия, как то нет гарантии что оно жить будет нормально и длолго. А оно завязано за бибилиотеки, а их под каждый дистр линукса надо как то собирать, как я понимаю.
QT Webkit не пробоваал, т.к. не знаю насколько хорошо lazarus поддерживает qt.
Если есть какие то мысли, прошу высказываться.
- Снег Север
- долгожитель
- Сообщения: 3067
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
сам интересуюсь, ибо ничего толкового не нашел
Pisklov_A писал(а):Компонент должен получать данные НЕ из веба или файла на диске, а желательно что бы принимал строку как параметр.
В идеале было бы хорошо, что бы он еврейские и арабские закорючки с права на лево рисовал.
а картинки рисовать нужно или только текст?
Если последнее, то можешь попробовать прикрутить RichMemo.
зато еврейские и арабские закорючки с права на лево рисовал обеспечены системой.
Нативная поддержка html-я отсутствует (кроме Qt, там при желании можно подгрузить html), зато есть пример "mlparse", где подгружается html подобная разметка.
Pisklov_A писал(а):только текст.
тогда richmemo рекомендую.
Да, возможно прикручивать "минимальный набор тегов" может быть не приятно, но если этот набор "минимальный", то я могу помочь
основной плюс richmemo:
* основан на системном компонентем - не нужно таскать с собой библиотеку/браузер
* поддержка юникода и дальне и блежневосточных текстов, чем не каждый самописный компонент может похвастатся
Если нужны гипертектсовые ссылки (т.е. некий текст, с которым связан некий адрес и при нажатии на этот текст, вызывается событие где можно узнать и адрес и сам текст который был нажат), то их добавление в richmemo тоже можно завершить. Они начаты но не доделаны
я понял, что вы автор этого компонента.
Задам вопрос.
Если я сделаю двойной клик на слове , можно как то будет отследить по какому слову был совершен даблклик?
И философский вопрос... возможности лазаруса сильно ограничены, регулярно что то подглючивает, почему вы им занимаетесь? Мне просто интересна мотивация.
Добавлено спустя 7 минут 24 секунды:
Вот это брать ? https://havefunsoft.com/share/richmemo.zip
Задам вопрос.
Если я сделаю двойной клик на слове , можно как то будет отследить по какому слову был совершен даблклик?
И философский вопрос... возможности лазаруса сильно ограничены, регулярно что то подглючивает, почему вы им занимаетесь? Мне просто интересна мотивация.
Добавлено спустя 7 минут 24 секунды:
Вот это брать ? https://havefunsoft.com/share/richmemo.zip
Pisklov_A писал(а):Пробовал THtmlPort:
Под виндами норм.
В линуксе новая версия при добавлении на форму THtmlViewer, аварийно завершает лазарус. Старая версия не компилируется.
Я думаю он не кросплатформенный.
Я сам не пробовал, но разработчик HtmlViewer говорит, что под линуксом уже работает.
Последний раз редактировалось kazalex 30.03.2016 15:56:23, всего редактировалось 1 раз.
Pisklov_A писал(а):Если я сделаю двойной клик на слове , можно как то будет отследить по какому слову был совершен даблклик?
SelStart должен поидее быть на этом самом слове.
CharAtPos() метод вернёт слово по указанным X,Y координатам
Pisklov_A писал(а):И философский вопрос... возможности лазаруса сильно ограничены, регулярно что то подглючивает, почему вы им занимаетесь? Мне просто интересна мотивация.
Философский ответ - а что не подглючивает регулярно?
На самом деле, сказывается ограниченность кругозора - меня научили писать на паскале / делфях. Больше ничего и не умею.
А раз не умею, то продолжаю делать, то что делаю
Потребность в компоненте с поддержкой (хотя бы минимального) форматирования текста была всегда и почему бы мне не её не написать.
Кстати, начал я RichMemo ещё в 2008/2009 году, в бытность свою фрилансером, когда один из заказов потребовал наличие такого компонента. (Заказ требовал кроссплатформенного приложения для мака и винды, и на тот момент выбор Лазаруса был актуален)
Добавлено спустя 4 минуты 20 секунд:
Pisklov_A писал(а):Вот это брать ? https://havefunsoft.com/share/richmemo.zip
да, это он.
kazalex писал(а): сам не пробовал, но разработчик HtmlViewer говорит, что под линуксом уже работает.
Я не специалист, но скаченный HtmlViewer-HtmlViewer-11.6-to-11.7.zip при компиляции выдаёт сообщение об ошибке.
Добавлено спустя 42 минуты 38 секунд:
скалогрыз писал(а):тогда richmemo рекомендую.
Вроде бы годный.
Turbopower IPro. Имеется в стандартной поставке Lazarus. Насчёт Юникода не проверял, но в его исходниках имеется обработка UTF-8.
а вот ещё есть KMemo
есть ли там хоть какая-то поддержка html, не знаю. И вряд ли развита поддержка восточных языков
есть ли там хоть какая-то поддержка html, не знаю. И вряд ли развита поддержка восточных языков
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;
Результат:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
sign писал(а): TIpHtmlPanel
по моему utf-8 нельзя .. но я могу ошибаться. А вообще у меня уже выбор двух компонентов HtmlViewer и RichMemo второй мне пока более симпатичен.
Автор HtmlViewer-HtmlViewer-11.6-to-11.7.zip после моей жалобы вчера вроде пофиксил проблему, хотя я ещё не проверял, линукс только дома.
p.s.
Компилируется но не работает, вешает лазарус при добавлении на форму.
Последний раз редактировалось Pisklov_A 03.04.2016 01:23:08, всего редактировалось 1 раз.
Pisklov_A писал(а):о моему utf-8 нельзя
У меня редактор в utf8, соответственно и строки в utf8
У вас нет необходимых прав для просмотра вложений в этом сообщении.
sign писал(а):У меня редактор в utf8, соответственно и строки в utf8
Я конечно ваш пример не пробовал.. но у вас в коде 1251
' <meta http-equiv="content-type" content="text/html; charset=windows-1251">'
