- •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.2. Печать текста
Существует два способа печати текста из приложений Delphi.
Самый простой с использованием процедур Pascal Write и Writeln для вывода в файл типа Text. В процедурах Write и Writeln текст печатается с применением графических шрифтов.
Пример использования модуля Printers и его объекта Printer:
……………..
uses ………, Printers;
……………..
procedure TForm1.Button1Click(Sender: TObject);
Var fPrn: Text; // объявлена переменная типа Text.
begin
AssignPrn(FPrn); // Инициализация текстового файла
Rewrite(FPrn);
try
Writeln(FPrn, 'Hello printer!'); // Использование текстового файла
finally
CloseFile(FPrn); // Закрытие текстового файла
end;
end;
Попытка использовать созданный с помощью процедуры AssignPrn файл вывода с процедурами Read или Readln приведет к генерации сообщения об ошибке времени выполнения программы. Нельзя считывать данные с принтера, так как он является устройством вывода.
В процедуры Write и Writeln можно включать управляющие коды, используемые для посылки команд принтеру. Эти текстовые значения вставляются в печатаемые строки или используются в операторах Write: Write(FPrn, #9); // Табуляция
Write(FPrn,#13); // Очистка содержимого выходного буфера
Write(FPrn, #10); // Очистка и начало новой строки
Write(FPrn, ^L); // Очистка и начало новой страницы
Процедуры Write и Writeln заменяют символы табуляции промежутками, превышающими в восемь раз ширину среднего символа используемого шрифта. Это значит, что при печати пропорциональным шрифтом с использованием процедур Write и Writeln затруднительно с помощью табуляции выравнивать нецифровые колонки.
Можно изменить шрифт принтера, присвоив подсвойству Font.Nаmе свойства Canvas имя нового шрифта. Прежде чем изменить значения подсвойств Font, следует сначала вызвать AssignPrn и Rewrite.
Пример выбора шрифта Courier New для последующего его использования процедурами Write и Writeln:
with Printer.Canvas do
begin
Font.Nаmе := 'Courier New';
Font.Size := 9;
end;
Выбранный шрифт определяет высоту и ширину символа в пикселях, следовательно, и число строк на странице. Можно использовать любой установленный шрифт, но для печати, как правило, лучше всего подходят шрифты TrueType. Это объясняется тем, что Windows GDI может создавать символы таких шрифтов для любого графического драйвера печати, даже если он непосредственно не поддерживает TrueType. Как правило, для печати используется тот же шрифт, что и для отображения на экране. Если для отображения текста используется такой компонент, как Memo, с помощью следующего оператора свойству Canvas объекта Printer необходимо присвоить значение свойства Font объекта Memo:
Printer.Canvas.Font := Меmo1.Font;
8.3. Диалоговые окна для работы с принтером
Для управления печатью в разных приложениях используются стандартные диалоги.
Для конфигурирования принтера или выбора других принтеров и портов на форме размещается компонент PrinterSetupDialog (страница Dialogs). Объект представлен пиктограммой, которая не отображается во время работы программы. В обработчик события OnClick кнопки или команды меню вводится оператор:
PrinterSetupDialog1.Execute;
Общий диалог печати (компонент PrintDialog) используется для предоставления пользователю возможности управлять режимами печати. Для реализации диалога на форме следует разместить компонент PrintDialog, который невиден во время работы программы.
Пример схемы обработчика события OnClick. Операторы Write и Writeln следует размещаRandomize;
ть в блоке try.
if PrintDialog1.Execute then
begin
AssignPrn(FPrn);
Rewrite(FPrn);
try
{... Запись текста в FPrn}
finally
CloseFile(FPrn);
end;
end;
Использование любой информации, предоставляемой в объекте PrintDialog, зависит от программиста. После вызова Execute, в цикле печати можно применять свойства Copies, FromPage, ToPage и др.
with PrintDialog1 do
for Сору := 1 to Copies do
for Page := FromPage to ToPage do
{...Печать страниц }
end;