Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №20.pdf
Скачиваний:
17
Добавлен:
16.03.2015
Размер:
737.92 Кб
Скачать

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Класс TFont

С помощью класса TFont создается объект-шрифт для любого графического устройства (экрана, принтера, плоттера и т. п.). Наиболее важные свойства класса перечислены в таблице 11.

Таблица 11 – Свойства класса TFont

Свойство

Описание

 

 

property Charset: TFontCharSet;

Набор символов. Для русскоязычных программ это

 

свойство обычно имеет значение DEFAULT_CHARSET

 

или RUSSIAN_CHARSET. Используйте значение

 

OEM_CHARSET для отображения текста MS-DOS

 

(альтернативная кодировка).

property Color: TColor;

Цвет шрифта.

property Height: Integer;

Высота шрифта в пикселах экрана.

property Name: TFontName;

Имя шрифта. По умолчанию имеет значение MS Sans

 

Serif.

property Size: Integer;

Высота шрифта в пунктах (1/72 дюйма). Изменение

 

этого свойства автоматически изменяет свойство Height

 

и наоборот.

property Style: TFontStyles; Стиль шрифта. Может принимать значение как комбинацию следующих признаков:

fsBold (жирный);

fsItalic (курсив);

fsUnderline (подчеркнутый);

fsStrikeOut (перечеркнутый).

Для присваивания свойств объекта шрифта необходимо использовать метод procedure Assign(Source: TPersistent);

с помощью которого значения свойств шрифтового объекта Source присваиваются свойствам текущего шрифта.

Рассмотрим небольшой пример на использование различных шрифтов при выводе текста. Создайте новый проект. На форму frmFontDemo поместите следующие компоненты: TPanel (pnCommand) и TFontDialog (FontDialog). Установите значение

свойства Align равным alBottom. Компонент TFontDialog находится на вкладке

Dialogs палитры компонентов. Этот компонент представляет собой стандартный диалог выбора шрифта (рисунок 8).

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Рисунок 8 – Вид стандартного окна выбора шрифта

Работа с этим компонентом аналогична работе с компонентом TOpenDialog. Выбранный шрифт находится в свойстве Font компонента. Поместите на панель

(pnCommand) следующие компоненты: TButton (btnExit, btnFont, btnEnter), TEdit (edtStr),.

Разместите компоненты на форме как показано на рисунке 9.

Рисунок 9 – Вид формы после размещения и настройки компонентов

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Создайте следующие обработчики событий для формы frmFontDemo: OnPaint, OnResize, OnCreate. Создайте также обработчики для кнопок «Ввод», «Шрифт», «Выход». Текст программы приведен в листинге 6.

Листинг 6 – Программа «Шрифт»

unit UFontDemo;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

type

TfrmFontDemo = class(TForm) pnCommand: TPanel; btnExit: TButton; btnFont: TButton;

edtStr: TEdit; btnEnter: TButton;

FontDialog: TFontDialog;

procedure btnExitClick(Sender: TObject); procedure FormResize(Sender: TObject); procedure FormPaint(Sender: TObject); procedure FormCreate(Sender: TObject); procedure btnEnterClick(Sender: TObject); procedure btnFontClick(Sender: TObject);

private

{Private declarations } public

{Public declarations } FHeight:Integer;

procedure Draw; end;

var frmFontDemo: TfrmFontDemo;

implementation

{$R *.dfm}

procedure TfrmFontDemo.btnExitClick(Sender: TObject); begin

Close;

end;

procedure TfrmFontDemo.Draw; var y:integer;

begin y:=10;

//рисуем фон

Canvas.Brush.Color:=clWhite;

Canvas.Brush.Style:=bsSolid; Canvas.FillRect(Rect(0, 0, ClientWidth, FHeight)); //устанавливаем шрифт

Canvas.Font.Size:=8;

Canvas.Font.Style:=[];

//рисуем образцы

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

with Canvas do begin

TextOut(10, 10, edtStr.Text + ' Size=8'); y:=y+TextHeight(edtStr.Text)+10;

Font.Size:=16;

TextOut(10, y, edtStr.Text + ' Size=16'); y:=y+TextHeight(edtStr.Text)+10;

Font.Size:=24;

TextOut(10, y, edtStr.Text + ' Size=24'); y:=y+TextHeight(edtStr.Text)+10;

Font.Style:=[fsBold];

TextOut(10, y, edtStr.Text + ' (Жирный)'); y:=y+TextHeight(edtStr.Text)+10;

Font.Style:=[fsItalic];

TextOut(10, y, edtStr.Text + ' (Курсив)'); y:=y+TextHeight(edtStr.Text)+10;

Font.Style:=[fsUnderline];

TextOut(10, y, edtStr.Text + ' (Подчеркнутый)'); y:=y+TextHeight(edtStr.Text)+10;

Font.Style:=[fsStrikeOut];

TextOut(10, y, edtStr.Text + ' (Зачеркнутый)'); end;

end;

procedure TfrmFontDemo.FormResize(Sender: TObject); begin

FHeight:=ClientHeight - pnCommand.Height -1; Draw;

end;

procedure TfrmFontDemo.FormPaint(Sender: TObject); begin

Draw;

end;

procedure TfrmFontDemo.FormCreate(Sender: TObject); begin

FHeight:=ClientHeight - pnCommand.Height -1;; end;

procedure TfrmFontDemo.btnEnterClick(Sender: TObject); begin

Draw;

end;

procedure TfrmFontDemo.btnFontClick(Sender: TObject); begin

if FontDialog.Execute then begin

Canvas.Font.Assign(FontDialog.Font);

Draw; end;{if}

end;{btnFontClick}