Вывод иллюстрации
Для вывода иллюстрации в форму добавлен компонент image, значок которого (рис. 15.3) находится на вкладке Additional палитры компонентов. В табл. 15.7 приведены свойства компонента image.
Рис.15.3. Значок компонента Image
Таблица 15.6. Свойства компонента image.
Свойство | Определяет |
---|---|
Name | Имя компонента |
Picture | Свойство, являющееся объектом типа Tbitmap. Определяет выводимую картинку |
Left | Расстояние от левого края формы до левой границы области картинки |
Top | Расстояние от верхней границы формы до верхней границы области картинки |
Height | Высоту картинки |
Width | Ширину картинки |
Stretch | Признак автоматического сжатия или растяжения картинки таким образом, чтобы она была видна полностью в области, размер которой задан свойствами width и Height |
AutoSize | Признак автоматического изменения размера компонента в соответствии с реальным размером картинки. Если значение свойства AutoSize равно True, то при изменении значения свойства picture автоматически меняется размер области вывода иллюстрации так, чтобы была видна вся картинка. Если значение свойства AutoSize равно False, а размер картинки превышает размер области, то отображается только часть картинки |
Картинку, отображаемую в области image, можно задать во время создания формы или во время работы программы. Во время создания формы картинка задается установкой значения свойства Picture. Во время работы программы – Применением метода LoadFromFile.
Например, для разрабатываемого приложения инструкция вывода иллюстрации, находящейся в файле Isaak.bmp (изображение Исаакиевского собора), может быть такой:
Image1.Picture.LoadFromFile('isaak.bmp');
Очевидно, что размер области формы, которая может использоваться для вывода иллюстрации, зависит от длины (количества слов) вопроса, длины и количества альтернативных ответов. Чем длиннее вопрос и ответы, тем больше места в поле формы они занимают, и тем меньше места остается для иллюстрации.
При проектировании формы можно задать жесткие ограничения на размер областей, предназначенных для вопроса и альтернативных ответов, и жестко задать предельный размер иллюстрации. Однако можно поступить иначе. После прочтения из файла очередного вопроса вычислить, сколько места займут тексты вопроса и ответов и сколько места можно выделить для вывода иллюстрации (рис. 15.4).
Рис. 15.4. Вычисление размера области вывода иллюстрации
Если реальный размер иллюстрации превышает размер области, выделенной для ее вывода, то необходимо вычислить коэффициент масштабирования и установить максимально возможные, пропорциональные ширине и высоте иллюстрации, значения свойств width и Height области вывода иллюстрации.
Реальные размеры иллюстрации, загруженной в область image 1, можно получить из свойств Image1.Picture.Bitmap.Width и Image1.Picture.Bitmap.Height.