TCustomRichView.DoInPaletteMode [VCL, LCL]

<< Нажмите, чтобы показать Содержание >>

TCustomRichView.DoInPaletteMode [VCL, LCL]

Определяет поведение компонента TRichView при рисовании в 256-цветном режиме.

type

  TRVPaletteAction =

    (rvpaDoNothing, rvpaAssignPalette,

     rvpaCreateCopies, rvpaCreateCopiesEx);

 

property DoInPaletteMode: TRVPaletteAction.

Примечание: TRVPaletteAction объявлен в модуле RVScroll.

Это свойство влияет только на отображение в 256-цветном режиме и не оказывает никакого влияния в режимах с большим количеством цветов.

Это свойство может считаться устаревшим, поскольку 256-цветный режим используется редко.

Режим

Описание

rvpaDoNothing

TRichView не работает с цветовой палитрой. Используйте эту функцию, если в TRichView нет изображений или все изображения имеют 16-цветную палитру VGA.

rvpaAssignPalette

При работе в 256-цветном режиме TRichView создаёт палитру и назначает её всем изображениям (включая фон). Это повлияет на все изображения, уже присутствующие в TRichView, и на все изображения, которые будут вставлены позже (в 256-цветном режиме). Это также не очень хороший вариант, поскольку изображения теряют качество, которое нельзя восстановить при переключении в режим с большим числом цветов. При сохранение в файлы, буфер обмена, печати на принтер качество изображений будет снижено. Поэтому используйте этот вариант, если вам нужно только отобразить документ.

rvpaCreateCopies

(Вариант по умолчанию и предпочтительный вариант) В 256-цветном режиме TRichView создаёт копии всех изображений (включая фон) и назначает им цветовую палитру. Это повлияет на все изображения, уже имеющиеся в TRichView, и на все изображения, которые будут вставлены позже (в 256-цветном режиме). Эта работа абсолютно «прозрачна» для вас, вы будете работать с исходными изображениями, которые остаются неизменёнными.

rvpaCreateCopiesEx

Для будущих версий, не следует использовать (идея: копии изображений могут создаваться не в формате исходного изображения, а в каком-либо более удобном формате).

Примечания:

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

2.Если вы используете многоцветные значки (изображения из TImageList) в TRichView, рекомендуется иметь два TImageList: 16-цветный для 16- и 256-цветного режимов и многоцветный для остальных.

3.TRichView не может изменять палитру растровых изображений внутри метафайлов; не используйте TMetafile, содержащий многоцветные растровые изображения в 256-цветном режиме.

4.TRichView не может обновлять информацию о палитре при переключении пользователем цветового режима без перезапуска Windows. Пожалуйста, сделайте это самостоятельно, как показано ниже.

5.Если вы создаете RichView, RichViewEdit, RVPrintPreview, RVPrints во время выполнения (например, MyRichView := TRichView.Create(Self)), вам необходимо вызвать методы UpdatePaletteInfo таких компонентов после их создания.

В модуле главной формы напишите...

В разделе interface:

procedure WMDisplayChange(var Message: TWMDisplayChange);

  message WM_DISPLAYCHANGE;

В разделе implementation:

procedure TMyForm.WMDisplayChange(var Message: TWMDisplayChange);

begin

  // Надо вызвать метод UpdatePaletteInfo всех

  // RichViews, RichViewEdits, и RVPrints 

  //(если используется предварительный просмотр)

  // например:

  MyRichViewEdit.UpdatePaletteInfo;

  MyRVPrint.UpdatePaletteInfo;

end; 

Значение по умолчанию:

rvpaCreateCopies

В TRichView используется палитра, показанная ниже (та же, что и в Microsoft Internet Explorer):

rvpalette

Если вам нужно использовать собственную палитру, дайте мне знать, я создам для неё свойство. В текущей версии вы можете переопределить защищённый динамический метод GenerateLogPalette (объявленный в TRVScroller).

См. также методы:

UpdatePaletteInfo.

См. также методы TRVPrint:

UpdatePaletteInfo.