Изменение свойств пера и кисти




  1. Добавьте на форму MainForm еще одну панель инструментов ToolBar. На нее мы и поместим компоненты для выбора свойств пера и кисти.
  2. Поместите на форму компонент ImageList. Его свойства Height и Width задают размеры содержащихся в нем изображений. Измените свойство Width на 36. Добавьте в ImageList2 изображения из папки Pen.
  3. На только что созданную панель инструментов поместите компонент ComboBoxEx с палитры компонентов Win32.

Примечание: Расширенный комбинированный список ComboDoxEx отличается от простого выпадающего списка ComboBox возможностью добавлять картинки к его элементам.

Этот компонент будем использовать для выбора стиля рисуемой линии.

  1. В свойстве Style выберите csExDropDownList, теперь редактор будет работать только в режиме отображения выбора и его нельзя использовать для ввода новой строки (при других значениях стиля это возможно). В свойстве Images выберите ImageList2.
  2. Выделите свойство ItemsEx, которое задает набор элементов списка. Двойным щелчком мыши в поле этого свойства или нажатием кнопки с многоточием откройте редактор элементов списка.

Рис. 5. Редактор списка ComboDoxEx.

  1. Кнопка Add New позволяет добавить в список новые элементы, которые обладают уже известными вам свойствами Caption и ImageIndex. Создайте 6 пунктов со следующими свойствами:
Caption ImageIndex
Сплошная  
Невидимая  
Тире  
Точка  
Тире-точка  
Тире-точка-точка  

Эти элементы представляют собой набор значений, которые может принимать стиль рисуемой линии. Закройте редактор ComboBoxEx.

  1. В свойстве Hint компонента ComboBoxEx1 задайте «Стиль линии|Выбор стиля линии», свойство ShowHint измените на True.
  2. Двойным щелчком мыши по компоненту ComboBoxEx1 откройте обработчик события OnChange этого компонента и в позиции курсора добавьте код

with Image1.Canvas.Pen do

case ComboBoxEx1.ItemIndex of

0:Style:=psSolid;

1:Style:=psClear;

2:Style:=psDash;

3:Style:=psDot;

4:Style:=psDashDot;

5:Style:=psDashDotDot;

end;

Эта процедура в зависимости от выбранного элемента списка меняет стиль рисуемой линии.

  1. Теперь добавьте на панель инструментов ToolBar3 компонент SpinEdit со страницы Samples. Этот компонент предназначен для ввода и отображения числа. Он представляет собой комбинацию однострочного редактора CustomEdit и кнопок SpinButton. Редактор способен вводить только целые числа, а кнопки используются для изменения числа на некоторую фиксированную величину. Мы будем использовать его для изменения толщины рисуемой линии.
  2. Измените ширину SpinEdit1 на 40, минимальное значение (MinValue) на 1, а максимальное (MaxValue) – на 20.
  3. В свойстве Hint наберите «Толщина линии|Изменение толщины линии», свойство ShowHint измените на True.
  4. Создайте для него процедуру

procedure TMainForm.SpinEdit1Change(Sender: TObject);

begin

Image1.Canvas.Pen.Width:= SpinEdit1.Value;

end;

  1. Создайте на панели инструментов ToolBar3 разделитель (команда New Separator из контекстного меню).
  2. Поместите на форму компонент ImageList и добавьте в него изображения из папки Brush.
  3. На панель инструментов ToolBar3 поместите еще один список ComboBoxEx. Этот компонент мы будем использовать для изменения стиля заливки.
  4. В свойстве Style выберите csExDropDownList. А в свойстве Images выберите ImageList3.
  5. С помощью свойства ItemsEx задайте следующие элементы списка
Caption ImageIndex
Сплошная  
Отсутствует  
Горизонтальная  
Вертикальная  
Диагональ вверх  
Диагональ вниз  
Прямая решетка  
Косая решетка  
  1. В свойстве Hint наберите «Стиль заливки|Выбор стиля заливки», свойство ShowHint измените на True.
  2. Создайте для него процедуру

procedure TMainForm.ComboBoxEx2Change(Sender: TObject);

begin

with Image1.Canvas.Brush do

case ComboBoxEx2.ItemIndex of

0:Style:=bsSolid;

1:Style:=bsClear;

2:Style:=bsHorizontal;

3:Style:=bsVertical;

4:Style:=bsFDiagonal;

5:Style:=bsBdiagonal;

6:Style:=bsCross;

7:Style:=bsDiagCross;

end;

end;

  1. Для того чтобы при запуске программы в списках стилей были выбраны первые элементы, в созданную нами процедуру Start добавьте код:

ComboBoxEx1.ItemIndex:=0;

ComboBoxEx2.ItemIndex:=0;

SpinEdit1.Text:='1';

Свойства шрифта

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

  1. На форму MainForm добавьте еще одну панель инструментов ToolBar.
  2. Для этой панели свойства AutoSize и Flat измените на True.
  3. Поместите на нее комбинированный список ComboBox. Он будет использоваться для выбора имени шрифта.
  4. Создайте для него процедуру

procedure TMainForm.FontNameChange(Sender: TObject);

begin

Image1.Canvas.Font.Name:= ComboBox1.Items[ComboBox1.ItemIndex];

end;

Эта процедура изменяет название шрифта холста на элемент, выделенный в списке ComboBox1.

  1. Для того чтобы заполнить содержимое списка названиями шрифтов, в событие OnCreate формы добавьте строку

ComboBox1.Items:=Screen.Fonts;

  1. А в процедуру Start добавьте код

ComboBox1.Text:= Image1.Canvas.Font.Name;

  1. На панели инструментов ToolBar4 создайте разделитель (New Separator) и добавьте еще один компонент ComboBox, который будет использоваться для изменения размера шрифта. Установите его ширину равной 48.
  2. Дважды щелкните на свойстве Items и в открывшемся окне редактора введите строки 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72.
  3. Создайте процедуру

procedure TMainForm.ComboBox2Change(Sender: TObject);

begin

Image1.Canvas.Font.Size:= StrToInt(ComboBox2.Text);

end;

  1. В процедуру Start добавьте код

ComboBox2.Text:= IntToStr(Image1.Canvas.Font.Size);

  1. Для работы функций StrToInt и IntToSt, в разделе uses подключите модуль SysUtils.
  2. На панели инструментов ToolBar4 создайте разделитель и три кнопки (New Button).
  3. В свойстве Images выберите ImageList1, а затем задайте для кнопок рисунки, означающие жирный, курсивный и подчеркнутый текст. Измените их имена (Name) на btBold, btItalic и btUnderlined соответственно.
  4. Выделите эти три кнопки и в свойстве Style установите значение tbsCheck.
  5. Кнопка btBold задает жирный стиль шрифта.

procedure TMainForm.btBoldClick(Sender: TObject);

begin

with Image1.Canvas.Font do

if btBold.Down then Style:= Style + [fsBold]

else Style:= Style - [fsBold];

end;

  1. Кнопки btItalic и btUnderlined задают курсивный и подчеркнутый стиль текста соответственно.

procedure TMainForm.btItalicClick(Sender: TObject);

begin

with Image1.Canvas.Font do

if btItalic.Down then Style:= Style + [fsItalic]

else Style:= Style - [fsItalic];

end;

procedure TMainForm.btUnderlinedClick(Sender: TObject);

begin

with Image1.Canvas.Font do

if btUnderlined.Down then Style:= Style + [fsUnderline]

else Style:= Style - [fsUnderline];

end;



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-10-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: