1012 Глава 15

Классы TGraphic, TBitmap, TIcon, TMetafile, TPicture

Прототип

virtual void _fastcall SaveToStream(Classes::TStream* Stream) = 0;

Описание

Метод SaveTo Stream сохраняет в потоке Stream изображение графического
объекта. Используется, например, для сохранения в объекте TBIobStream графи-
ческого поля из набора данных.

ScaleBy

Масштабирует оконный элемент и все содержащиеся в нем компоненты
Класс TWinControl

Определение

void   fastcall ScaleByfint M, int D) ;

Описание

Метод ScaleBy масштабирует оконный элемент и все содержащиеся в нем ком-
поненты. Масштабируются такие свойства компонента, как Width и Height, опре-
деляющие его размер. Свойства Тор и Left остаются неизменными. Масштабирует-
ся также размер шрифта, если только в компоненте не установлено ParentFont =
true. В последнем случае шрифт наследуется от родительского компонента и поэ-
тому не изменяется.

Если компонент является контейнером, содержащим другие компоненты, то
эти дочерние компоненты также масштабируются. Причем у них изменяются не
только Width и Height, но также пропорционально изменяются Тор и Left. опре-
деляющие их местоположение. Если во всех дочерних компонентах установлено
ParentFont = true, а в компоненте-контейнере ParentFont = false, то пропорцио-
нально изменяются и шрифты всех компонентов (но, конечно, не непрерывно, а
скачками, доступными тому или иному типу шрифта).

Параметры M and D определяют соответственно множитель и делитель масш-
таба. Например, чтобы уменьшить размеры на 10% начального значения, можно
задать M равным 9, а D равным 10 (9/10). Если же вы хотите увеличить размер на
1/3, то можно задать М=133 и D=100 (133/100) или М=4 и D=3 (4/3).

Подробнее метод рассмотрен в главе 4 в разделе 4.2.5.

Примеры

1. Оператор

Editl->ScaleBy(ll,10);

масштабирует окно редактирования Editl. В любом случае при выполнении
этого оператора увеличивается на 10% длина окна (свойство Width), что обес-
печивает возможность наблюдать и редактировать в нем более длинный текст.
Высота окна (свойство Height) будет изменяться пропорционально, если свой-
ство компонента AutoSize равно false. В противном случае высота определяет-
ся только размером шрифта и при постоянном шрифте будет неизменной. А
размер шрифта будет меняться, только если свойство компонента ParentFont
равно false, т.к. иначе шрифт определяется родительским компонентом.

2. Приведенный ниже обработчик события OnKeyUp окна редактирования Editl
дает пользователю возможность менять длину окна. При нажатии комбина-