- •2. Визуальные компоненты
- •2.1. Свойства
- •2.2. События
- •2.3. Методы
- •If Edit1.CanFocus then Edit1.SetFocus; {перед получением фокуса производится проверка на возможность передачи фокуса компоненту}
- •3. Работа с текстом
- •3.1. Использование надписей
- •3.2. Однострочный редактор
- •3.3. Общие свойства, события и методы компонентов редактирования
- •3.4. Класс tStrings
- •3.5. Многострочный редактор
- •3.6. Использование списков
- •3.7. Таблица String Grid
- •4. Кнопки и переключатели
- •4.1. Работа с кнопками
- •4.1.1. Стандартная кнопка
- •4.1.2. Кнопка с рисунком
- •4.2. Работа с переключателями
- •4.2.1. Переключатель с независимой фиксацией
- •If CheckBox1.Checked then MessageDlg ('Время истекло! ', mtError, [mbОк], 0);
- •4.2.2. Переключатель с зависимой фиксацией
- •4.3. Объединение элементов управления
- •5. Использование форм
- •5.1. Свойства, методы и события форм
- •5.2. Организация взаимодействия форм
- •5.3. Особенности модальных форм
- •5.4. Шаблоны форм
- •5.5. Процедуры и функции, реализующие диалоги
- •5.6. Стандартные диалоги
- •If OpenDialog1.Execute then // при отмене диалога открытие файла не происходит
- •If SaveDialog1.Execute then { Получить имя файла }
- •6.Главное и контекстное меню, панели инструментов
- •6.1. Класс tMenuItem
- •6.2. Cоздание главного и контекстного меню
- •6.3. Динамическая настройка меню
- •6.4. Панели инструментов
- •7. Создание графических изображений
- •7.1. Классы для работы с графикой
- •7.2. Основные компоненты для размещения изображений
- •7.3. Типы графических объектов
- •7.4. Создание диаграмм
- •8. Печать объектов
- •8.1. Класс tPrinter
- •8.2. Печать текста
- •Var fPrn: Text; // объявлена переменная типа Text.
- •8.3. Диалоговые окна для работы с принтером
- •8.4. Печать графических изображений
- •8.4.1. Печать форм
- •8.4.2. Печать диаграмм
- •9. Работа с датами
- •9.1. Преобразование даты
- •9.2. Компоненты для ввода дат
- •10. Сохранение параметров программы.
- •Ini : tIniFile; //объявляем переменную типа inifile
- •Ini : tIniFile; //объявляем переменную типа inifile
- •11. Обработка исключительных ситуаций
- •Var f: File; begin AssignFile(f, 'Somefile.Ext'); try // оператор, в котором возможна ошибка Reset(f); // работы с файлом finally CloseFile(f) end;
8.4. Печать графических изображений
8.4.1. Печать форм
Для печати копии формы так, как она выглядит на экране, следует вызвать метод Print формы. Для печати изображения формы следует расположить на ней объект PrintDialog, а в обработчик события OnClick кнопки или команды меню ввести следующие операторы: if PrintDialog1.Execute then Print;
Для печати определенной формы необходимо указать ее имя, например: AboutBox.Print;.
Метод Print формы сначала копирует клиентскую область текущего окна во внеэкранное растровое изображение, а затем печатает его с помощью функции Windows API StretchDIBits.
Свойство PrintScale определяет режим масштабирования печатаемой копии во время работы программы или из окна Object Inspector и имеет значения:
• poNone. Масштабирования нет. Размеры печатаемой копии зависят от разрешения принтера. При использовании этого значения для печати форм на лазерных принтерах выводятся неразличимые, крошечные окна.
• poPrintToFit. Масштабирование до размеров страницы. Печатаемая форма заполняет страницу в одном направлении (обычно горизонтально).
• poProportional. Масштабирование, зависящее от разрешающей способности принтера (количества пикселей на дюйм). Печатаемая копия является наиболее приемлемой.
8.4.2. Печать диаграмм
Самый простой способ вывода диаграмм на печать – использовать метод Print формы, содержащей диаграмму. Однако качество воспроизведения диаграмм с его помощью неудовлетворительное.
В компоненте TChart предусмотрено несколько собственных методов печати, которые генерируют диаграммы гораздо более высокого качества, чем метод печати формы. Самым простым из них является метод Print.
Chart1.Print;
При выполнении этой строки программы диаграмма будет напечатана с использованием полных значений ширины и высоты печатной страницы при разрешении экрана, действующего по умолчанию. Однако печать при таком разрешении экрана часто не подходит для приложений, включающих диаграммы. Поэтому нужно изменить это разрешение, а следовательно, и качество печатаемых диаграмм. Компонент TChart имеет динамическое свойство PrintResolution, которое можно установить равным целому значению в диапазоне – 100 ÷ 0, где 100 означает, что диаграмма печатается при максимальном разрешении принтера, а 0 – при установленном разрешении экрана.
Chart1.PrintResolution = PrintResScroll.Position;
Используя методы PrintPartial и PrintRect, можно также задать прямоугольник для диаграммы с целью ее масштабирования на печатной странице.
С помощью метода PrintPartialCanvas на одной странице можно напечатать сразу несколько диаграмм. Метод позволяет вывести одну или несколько диаграмм прямо на канву принтера и, в отличие от описанных методов печати, автоматически не запускает задание печати и не выталкивает напечатанную страницу.
Чтобы подготовить несколько диаграмм для печати на одной странице, сначала для каждой диаграммы определяется объект класса TRect, т.е. прямоугольник, который описывает положение диаграммы на странице. Затем для каждой диаграммы вызывается метод PrintPartialCanvas. В качестве аргументов он принимает элемент типа TCanvas и элемент типа TRect.
Пример печати диаграммы Сhat1
procedure TForm1.Button1Click(Sender: TObject);
var R: TRect;
begin
Printer.BeginDoc;
R:= Rect(0,0,Printer.PageWidth - 1, round((Printer.PageHeight - 1) / 3));
try
Chart1.PrintPartialCanvas(Printer.Canvas, R);
finally
Printer.EndDoc;
end;
end;