Программирование с C++ Builder

Мы рекомендуем: сочи санаторий зеленая роща сайт, узнайте подробности.


Отображение иллюстрации



Для отображения иллюстраций используется компонент image1 .

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

Очевидно, что размер области формы, которая может быть использована для вывода иллюстрации, зависит от длины (количества слов) вопроса, а также от длины и количества альтернативных ответов. Чем длиннее вопрос и ответы, тем больше места в поле формы они занимают, и тем меньше места остается для иллюстрации.

Размер и положение областей (компонентов), предназначенных для вывода вопроса, альтернативных ответов и иллюстрации, можно задать в процессе создания формы. Однако можно поступить иначе — задать размер и положение областей во время работы программы, после того как из файла будет прочитан очередной вопрос, когда будет получена информация о количестве альтернативных ответов. После того как вопрос прочитан, можно вычислить, сколько места займет текст вопроса и вариантов ответа и сколько места можно выделить для отображения иллюстрации (рис. 10.3).



Рис. 10.3. Вычисление размера области вывода иллюстрации


Если реальный размер иллюстрации превышает размер области, выделенной для ее отображения, то необходимо выполнить масштабирование иллюстрации. Для этого надо сначала присвоить максимально возможные значения свойствам width и Height , а затем — присвоить значение true свойству Proportional . Следует обратить внимание, что для того чтобы масштабирование было выполнено без искажения, значение свойства stretc должно быть false .