Показать или спрятать менюTRichView.ru
English | Deutsch | Español | Русский

  Рисунки в TRichView

Стандартные и дополнительные форматы графики в Delphi (VCL и LCL)

Документы TRichView могут содержать рисунки любого формата, поддерживаемого Delphi/C++Builder. Стандартные графические форматы включают:

  • битмапы (TBitmap),
  • 16-битные и 32-битные метафайлы (TMetafile)
  • значки (TIcon)
  • изображения Jpeg (TJPEGImage)
  • изображения Gif (TGifImage, с Delphi 2007)
  • изображения Png (TPngImage, с Delphi 2009; TPortableNetworkGraphic в Lazarus)
  • изображения Tiff (TWicImage, с Delphi 2010; TTiffImage в Lazarus)
  • изображения Anymap (TPortableAnyMapGraphic, только в Lazarus).
  • изображения Svg (TSkSvgGraphic, со Skia4Delphi).
  • изображения WebP (TSkGraphic, со Skia4Delphi).

Если вы включите в свои приложения дополнительные классы графики (классы, унаследованные от TGraphic), реализованные другими разработчиками, то вы можете использовать их в документах.

Пример рисунка в документе

Рисунки в FireMonkey

TRichView для FireMonkey использует TBitmap, который умеет работать с графикой различных форматов. При использовании Skia4Delphi добавляется поддержка изображений SVG.

Изменение размеров рисунков

Пользователь может растягивать и сжимать рисунки мышью. При этом меняется только их отображение — сами рисунки в документе остаются неизменными.

Изменение размеров рисунка мышью

Анимация (VCL)

Возможна вставка следующих видов анимированных изображений:

  • анимированные рисунки Gif;
  • анимированные битмапы (один большой битмап делится на кадры).

Фоновые рисунки

Фоновое изображение размещается в центре, растягивается на всё окно или покрывает его как черепица. Такие повторяющиеся фоновые изображения либо неподвижны, либо прокручиваются вместе с документом.

Таблицы и их ячейки также могут иметь картинку на фоне.

'Аватары' в чате представлены картинками из TImageList. Кроме того, вы можете видеть фоновый рисунок

Рисунки из Image Lists

Это — уникальная особенность TRichView.
Рисунки вставляются непосредственно из Image Lists. Это очень экономный по расходу памяти способ создать документы со множеством повторяющихся маленьких картинок (TRichView хранит в памяти только ссылку на TImageList и номер изображения в нём).

Демо 1 с рисунками из Image Lists: Demos\​*\​MultiDemo\

Демо 2 (пункт меню Insert | Bullet и Insert | Hot Spot): Demos\​*\​Editors\​Editor 1\

«Учебное пособие» по типам элементов TRichView (tutorial 1, project 5): Demos\​*\​Tutorial\

Рисунки во вставленных компонентах

Ещё один способ вставки изображения — загрузить его в компонент Delphi/C++Builder (такой как TImage), а затем вставить этот компонент в документ TRichView.
Таким образом вставляются даже анимированные изображения.

Дополнительная информация с форума технической поддержки (на английском языке):

Самостоятельное рисование

Программист может написать код для рисования фонов и различных элементов документа.

Рисование текста и фона абзацев

Демо: Demos\​*\​Assorted\​CustomDraw\

Рисунки и гипертекст

Рисунки могут служить гиперссылками. Если для гипертекстовых рисунков из Image List (hotspot в терминологии RichView) задать два разных изображения, то они меняются под курсором мыши.

Рисунки «hotspot» меняются под мышиным курсором

Демо: Demos\​*\​MultiDemo\
Скомпилированный пример включён в демонстрационные проекты TRichView

Специальные эффекты

На рисунке справа изображён специальный дополнительный тип элемента документа TRichView — TRVBlendBitmapInfo, показывающий рисунки с заданной степенью прозрачности.

Пример: Demos\​Addins\​BlendBitmap\
Скомпилированный пример включён в демонстрационные проекты TRichView

Полупрозрачные картинки

Положение в тексте

Рисунки (как и другие нетекстовые объекты) могут находиться внутри текстовой строки, выравненные по центру, верху, низу строки, или по базовой линии текста; или они могут быть выравнены по левому или правому краю документа, с обтеканием текста по противоположной стороне.