Портрет или пейзаж?

Большинство современных принтеров позволяют вам выбирать ориентацию графики на листе. Портретная ориентация - "высокий" способ - подобна портрету человека. Пейзажная ориентация - "широкий" способ - подобна рисованию в широкой раме. Вы можете прочитать ориентацию полотна Printer через свойство Printer. Orientation. Есть только два возможных значения - PoPortrait и PoLandscape, определенные в перечислимом типе TPrinterOrientation. Ориентация принтера определяет угол, в котором находится точка начала, как показано на Рисунке 12.7.

Orientation представляет собой свойство, доступное только на этапе выполнения программы и только для чтения. Оно не появится ни в одной таблице свойств. У вас нет возможности просто присвоить ему какое-либо значение для того, чтобы изменить ориентацию принтера; это должно быть сделано из Windows Print Manager, либо через диалог установок принтера, как это сделано в программе SpiroMania, которая помещена в данной главе. Если вы попытаетесь присвоить что-либо Orientation, компилятор позволит это сделать, однако ваша программа на этапе выполнения вызовет исключительную ситуацию, и вы увидите окно ошибки.

Печать многих листов

Если вам необходимо напечатать только один лист бумаги, достаточно заключить операторы рисования между BeginDoc и EndDoc в скобки. Часто может потребоваться напечатать много листов до вызова EndDoc, который освобождает используемую для буфера Printer. Canvas память и, по существу, завершает механизм печати Delphi до тех

Программирование в среде Delphi
Рис. 12.7 Как ориентация принтера определяет позицию точки 0,0.

пор, пока не встретится следующий оператор ВедіЮос. Для того, чтобы напечатать текущее полотно и получить чистое полотно, просто вызовите метод Ргіпт.ег.№\*ТЧ^е. NewPage напечатает все, что бы ни находилось в текущем полотне, очистит полотно и установит перо полотна в позицию 0,0. Только если вы выполнили печать и хотите использовать память буфера полотна где-либо еще, вызывайте ЕпсЮос

ДЕМОНСТРАЦИОННАЯ ГРАФИКА: ЦИКЛОИДНЫЕ КРИВЫЕ

В завершение этой главы позвольте мне представить потомка программы, впервые представленной мною во Втором Издании Полного Turbo Pascal, более десяти лет тому назад. Это реализация программного обеспечения замечательной пластмассовой игрушки, которую в мои детские годы называли Спирограф. Спирограф состоял из ряда маленьких пластмассовых механизмов, которые двигаллись вокруг внутреннего края гораздо большего механизма. В маленьких механизмах были отверстия для карандаша и если вы вставляли в одно из отверстий карандаш и двигали ei о вокруг внутренней стороны большего механизма, карандаш рисовал на подложенном под весь агрегат листе бумаги сложные узоры.

Вид кривых, нарисованных Спирографом, называется циклоидные кривые, которые легко моделируются в программном обеспечении. Механизмы ушли, но узоры остались, и, так как вы имеете почти неограниченный выбор количества "Отверстий для карандаша", узоры и в самом деле могут быть самые сложные.

Загрузите SPIRO.DPR с дискеты, прилагаемой к книге, скомпилируйте, и запустите его. Вы увидите изображение в таком виде, как на Рисунке 12.8. Вам не требуется вводить никакие значения, чтобы создать узор; в программе существуют значения по умолчанию для всех переменных, и узор возникнет сразу, как только вы запустите ее на выполнение.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в среде Delphi



Новости за месяц

  • Декабрь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31