Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Статья. Класс TFont 
:(
    Опции темы
Arch1S
Дата 23.4.2008, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 14.1.2008
Где: Беларусь, Гомель

Репутация: нет
Всего: 3



С помощью этого замечательного класса TFont мы можем выводить шрафт на форму.

Код

property Color: TColor;


Цвет шрифта 

Код

property Name : TFontName;


Имя шрифта. MS Sans Serif - это по умолчанию  

Код

property Charset: TFontCharset;


Набор символов. Для русских это свойство Default_Charset или Russian_Charset

Код

property Height: Integer;


Высота шрифта 

Код

property Size: Integer;


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

Код

property Style: TFontStyle;


Стиль шрифта. fsBold - жирный, fsItalic - курсив, fsUnderline - подчёркнутый, fsStrikeOut - перечёркнутый 

Для класса также есть один полезный метод:

Код

procedure Assign(Source: TPersistent);


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

Щас мы напишем с вами маленькую дэмо программу 

Код

procedure TForm1.FontClick(Sender: TObject);
begin
  if FontDialog1.Execute then
    pOut.Canvas.Font:= FontDialog1.Font
end;  

procedure TForm1.RunClick(Sender: TObject);
begin
  with pOut.Canvas, Font do
  begin
    TextOut(20,20,'MS Sans Serif, Size=10');
    Size:=10;
    TextOut(20,40,'MS Sans Serif, Size=20');
    Size:=20;
    Name:='Courier';
    Style:=[fsBold];
    TextOut(20,70,'Courier, Size=20');
    Name:='Times New Roman';
    Style:=[fsItalic,fsUnderLine,fsBold];
    TextOut(20,110,'Times Nes Roman, жирный, курсив, '+'подчерк.');
end;
Input.Show;
Font.Show;
pOut.Show;
Run.Hide;
Output.Caption:='Выберите шрифт, введите текст';
end;

procedure TForm1.OutClick(Sender: TObject);
begin
  if Input.Text <> '' then
    pOut.Canvas.TextOut(10,150, Input.Text);
  Input.Text:=''; //Очищаем поле ввода
  Input.SetFocus; // Передаём ему фокус ввода
end.


Некоторые пояснения к программе. Мы воспользовались шрифтом канвы компонента PaintBox1. Для изменения стиля шрифта свойству Style можно присвоить fsXXXX - типа TFontStyle. Этот тип определён как множество из элементов перчисленного типа. Вывод текста реализует метод TextOut канвы, которые передаются координаты левого верхнего угла надписи и текст.

Это сообщение отредактировал(а) Arch1S - 23.4.2008, 21:36
PM MAIL   Вверх
THandle
Дата 24.4.2008, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 1
Всего: 372



Есть ошибки в тексте, а так же, на мой взгляд крайне неудачный пример. Пример не удачен по двум причинам:

1. Не сразу понятно, ято это за такие Run, Font, Input, pOut.
В статьях все таки лучше оставлять стандартные имена. 

2. Не  совсем удачно взят with..do. Использовать его в повседневной то жизни надо осторожно(тем более для 2 и более объектов), а в статье для новичков нужно быть осторожным вдвойне. Хотя думаю, что сойдет, так как без него не красиво будет очень. smile 

3. Довольно не удачное форматирование кода. А так же не понятно зачем скрывать кнопки. 

К тому же к статье лучше приложить пример в полном виде. То есть пихнуть его в архив.

Это сообщение отредактировал(а) THandle - 24.4.2008, 08:41
PM   Вверх
THandle
Дата 24.4.2008, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 1
Всего: 372



Вот, подправил:



С помощью этого замечательного класса TFont мы можем выводить шрифт на форму.

    
Код

property Color: TColor;



Цвет шрифта.


Код

property Name : TFontName;



Имя шрифта. MS Sans Serif - это по умолчанию.

    
Код

property Charset: TFontCharset;



Набор символов. Для русских это свойство Default_Charset или Russian_Charset.


Код

property Height: Integer;



Высота шрифта. 


Код

property Size: Integer;



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


Код

property Style: TFontStyle;



Стиль шрифта. fsBold - жирный, fsItalic - курсив, fsUnderline - подчеркнутый, fsStrikeOut - перечеркнутый. 

Для класса также есть один полезный метод:

    
Код

procedure Assign(Source: TPersistent);



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



Пример:

Код

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    PaintBox1: TPaintBox;
    FontDialog1: TFontDialog;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  laststr : string;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  with PaintBox1.Canvas, Font do
    begin
      TextOut(20, 20, 'MS Sans Serif, Size=10');
      Size := 10;
      TextOut(20, 40, 'MS Sans Serif, Size=20');
      Size := 20;
      Name := 'Courier';
      Style := [fsBold];
      TextOut(20, 70, 'Courier, Size=20');
      Name := 'Times New Roman';
      Style := [fsItalic,fsUnderLine,fsBold];
      TextOut(20, 110, 'Times Nes Roman, жирный, курсив, подчерк.');
    end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  lcolor : TColor;
begin
  if Edit1.Text <> '' then
    begin
      lcolor := PaintBox1.Canvas.Font.Color;
      PaintBox1.Canvas.Font.Color := clBtnFace;
      PaintBox1.Canvas.TextOut(10, 150, laststr);
      PaintBox1.Canvas.Font.Color := lcolor;
      PaintBox1.Canvas.TextOut(10, 150, Edit1.Text);
      laststr := Edit1.Text;
      Edit1.Clear;
    end;
  Edit1.SetFocus;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  if FontDialog1.Execute then
    PaintBox1.Canvas.Font := FontDialog1.Font;
end;

end.



Некоторые пояснения к программе. Мы воспользовались шрифтом канвы компонента PaintBox1. Для изменения стиля шрифта свойству Style можно присвоить fsXXXX - типа TFontStyle. Этот тип определен как множество из элементов перечисленного типа. Вывод текста реализует метод TextOut канвы, которые передаются координаты левого верхнего угла надписи и текст.

Это сообщение отредактировал(а) THandle - 24.4.2008, 09:06

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  TFont.rar 167,21 Kb
PM   Вверх
Arch1S
Дата 24.4.2008, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 14.1.2008
Где: Беларусь, Гомель

Репутация: нет
Всего: 3



THandle, спасибо за редактирования

зы пример я привёл не совсем удачный 
PM MAIL   Вверх
THandle
  Дата 24.4.2008, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 1
Всего: 372



Статья опубликована:

http://forum.vingrad.ru/articles/topic-208138.html
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Форум группы: Vingrad Delphi - Voluntary Writers Group | Следующая тема »


 




[ Время генерации скрипта: 0.0835 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.