powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / HTMLComp Хинт из HTML
12 сообщений из 12, страница 1 из 1
HTMLComp Хинт из HTML
    #40038971
Michael Longneck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используется библиотека HTML Component Library .

Строится кусочек форматированного текста, со стилями и пр. Отображается на панели он правильно. Вопрос такой, как у THtDocument получить размеры так, чтобы "всё влезло"? Очевидный заход

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
function THtHintWindowEh.CalcHintRect(MaxWidth: Integer; const AHint: string; AData: Pointer): TRect;
begin
  Result := inherited CalcHintRect(MaxWidth, PrepareHint(AHint), AData);

  InitDocument;
  FDocument.Parse('<p style = "HINT">' + PrepareHint(AHint) + '</p>');
  FDocument.CalcSize;
  Result.Width := Round(FDocument.CalcWidth);
  Result.Height := Round(FDocument.CalcHeight);
end;



не работает, контент обрезается по высоте.
...
Рейтинг: 0 / 0
HTMLComp Хинт из HTML
    #40039028
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй здесь https://www.sql.ru/forum/996417-1/html-v-komponentah спросить
...
Рейтинг: 0 / 0
HTMLComp Хинт из HTML
    #40039050
Softologic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забавно, но именно такой же вопрос с этими же компонентами сегодня меня занимает в одном из проектов)
Я временно решил обойтись стандартными системными хинтами - они рисуются поверх приложения, поэтому ограничения канваса HtPanel для него не указ.
...
Рейтинг: 0 / 0
HTMLComp Хинт из HTML
    #40039053
Softologic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Рассмотрите пример HCLDemo, который идет с поставкой. Там в первой вкладке Label есть пример хинта, который способен выходить за пределы канвы.
...
Рейтинг: 0 / 0
HTMLComp Хинт из HTML
    #40039055
Softologic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Из справки HTML Component Library.docx:

автор Changing HtBalloonHint appearance
You could use any HTML/CSS in hint.
For example, to change hint background use title="<style>body {background: silver}</style>Hint text"
...
Рейтинг: 0 / 0
HTMLComp Хинт из HTML
    #40039069
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michael Longneck,

FDocument.CalcSize(Желаемая ширина);
Result.Height := FDocument.ContentHeight;

Понятие собственной ширины в HTML по сути отсутствует, т.к. некоторые элементы рассчитывают свой размер исходя из ширины и/или высоты ViewPort. Поэтому можно посчитать только минимальную ширину либо ширину при заданном окне.

Вообще лучше вопросы задавать в почту, она указана на сайте.
...
Рейтинг: 0 / 0
HTMLComp Хинт из HTML
    #40107179
Michael Longneck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В итоге задача решилась так - поскольку хинт больше экрана нее имеет смысла, то задаётся ViewPort на размеры выдаваемые CalcSize, но не больше экрана, рисуется в буфер такого размера. А потом этот буфер, поскольку цвет фона задан, обрезается снизу и справа до размеров контента. Ну и полученный размер используется.
...
Рейтинг: 0 / 0
HTMLComp Хинт из HTML
    #40107180
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michael Longneck,

Я же вроде отвечел ранее. Если в CalcSize передать большую ширину, то по Doc.BodyElement.ContentWidth можно узнать реальную ширину контента, если передать 1 пиксель то покажет минимально возможную ширину. А после повторного вызова уже с нужной шириной, определяется высота.
Вместо буфера можно для body задать overflow:hidden
...
Рейтинг: 0 / 0
HTMLComp Хинт из HTML
    #40107181
Michael Longneck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про Doc.BodyElement.ContentWidth в этой теме не было речи, только про Doc.ContentWidth
...
Рейтинг: 0 / 0
HTMLComp Хинт из HTML
    #40107184
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michael Longneck,

Это актуально для последних версий, сейчас Doc.ContentWidth может показывать ширину body если есть html элемент.
...
Рейтинг: 0 / 0
HTMLComp Хинт из HTML
    #40107185
Michael Longneck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну в итоге у меня получилось вашим способом, да, через BodyElement.ContentWidth + overflow: hidden. Буфер я всё равно оставил, кладу туда данные в CalcHintRect и в Paint показываю готовое.
...
Рейтинг: 0 / 0
HTMLComp Хинт из HTML
    #40107186
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michael Longneck,

Отрисовка в компонентах крайне оптимизирована, показ полноэкранной страницы текста на DX канвасе занимает порядка 10мс (100 FPS) так что обычно в буфере необходимости нет.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / HTMLComp Хинт из HTML
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]