Отправляет email-рассылки с помощью сервиса Sendsay

Delphi. Уроки

  Все выпуски  

Delphi. Уроки


Информационный Канал Subscribe.Ru

Delphi. Библиотека VCL. Уроки по программированию с сайта http://progs.biz

Рассылка №16

Delphi. VCL. Урок 31. Класс TPen.
Delphi. VCL. Урок 32. Класс TFont.
Delphi. VCL. Урок 33. Класс TBitmap.

Полные версии уроков (с картинками) можно найти по адресам
Урок 31. Класс TPen.
Урок 32. Класс TFont.
Урок 33. Класс TBitmap.

Изучаем Delphi. Библиотека VCL. Урок 31. Класс TPen

Класс TPen отвечат за перо. Оно, как и описанная в предыдущем уроке кисть, относится к холсту (Canvas). Перо предназначено для рисования различных линий. У него существует цвет (свойство Color), вид (сплошное, пунктирное и т. д. - свойство Style), ширина (свойство Width), режим отображения (свойство Mode). Вот пример использования пера:

  ...
  //Задаем перо синего цвета
  Form1.Canvas.Pen.Color:=RGB(0, 0, 255);
  Form1.Canvas.MoveTo(10, 12);
  Form1.Canvas.LineTo(70, 12);
  //Задаем штрих-пунктирное перо
  Form1.Canvas.Pen.Style:=psDashDot;
  Form1.Canvas.MoveTo(10, 22);
  Form1.Canvas.LineTo(70, 22);
  //Задаем толстое перо
  Form1.Canvas.Pen.Width:=6;
  Form1.Canvas.MoveTo(10, 32);
  Form1.Canvas.LineTo(70, 32);
  //Задаем режим отображения
  Form1.Canvas.Pen.Mode:=pmMask;
  Form1.Canvas.MoveTo(10, 42);
  Form1.Canvas.LineTo(70, 42);
  ...

А вот и результат - четыре линии с разными характеристиками.

Наши линии мы наложили на рисунок из прошлого урока. Обратите внимание, что до смены режима отображения линия полностью непрозрачна, после же мы частично видим рисунок под линией. Еще возможные значения для режима отображения - pmNot (с конвертацией цветов), pmMerge и другие.

Наверх

Изучаем Delphi. Библиотека VCL. Урок 32. Класс TFont

Шрифт (класс TFont) относится к холсту (Canvas). Основные характеристики у шрифта следующие: Style (стиль, позволяет задать такие характеристики шрифта как налужирность (fsBold), наклон (fsItalic), подчеркнутость (fsUnterline) и перечеркнутость (fsStrikeOut)), Height (высота в пикселах), Size (высота в пунктах (как в Word'е)), Color (цвет), Name (имя шрифта).

Вот пример использования этих свойств:

  ...
  Form1.Canvas.Font.Style:=[fsItalic, fsBold];
  Form1.Canvas.Font.Size:=20;
  Form1.Canvas.Font.Name:='Arial';
  Form1.Canvas.TextOut(10, 10, 'Пример');
  ...

Обратите внимание, как мы используем свойство Style. Оно имеет тип TFontStyles, которое в свою очередь является множеством (set) значений типа TFontStyle. Поэтому при присваивании мы перечисляем необходимые значения в квадратных скобках:

  ...
  Form1.Canvas.Font.Style:=[fsItalic, fsBold];
  ...

Если в вашей программе предусмотрена возможность установки шрифра пользователем, то проще всего воспользоваться предусмотренным для этого стандартным диалогом (см. урок 22).

Наверх

Изучаем Delphi. Библиотека VCL. Урок 33. Класс TBitmap

Класс TBitmap предназначен для работы с растровыми картинками. Он, как и другие классы, рассмотренные на предыдущих уроках, используется на холсте (Canvas) с помощью метода Draw. Вот пример его использования:

var
  Bitmap: TBitmap;
  ...
  Bitmap:=TBitmap.Create;
  //Загружает изображение из файла
  Bitmap.LoadFromFile('1.bmp');
  //Выводим размеры в заголовок формы
  Form1.Caption:=IntToStr(Bitmap.Width) + ' '
   + IntToStr(Bitmap.Height);
  //Выводим катринку на форму
  Form1.Canvas.Draw(0, 0, Bitmap);
  //Устанавливаем черно-белый режим
  Bitmap.Monochrome:=true;
  //Выводим вторую картинку
  Form1.Canvas.Draw(20, 0, Bitmap);
  ...

Первые два параметра метода Draw для холста - это координаты левого верхнего угла выводимой картинки.

В результате выполнения указанного фрагмента первая картинка вывелась в цвете, вторая - черно-белой.

Bitmap может быть и прозрачным. В этом случае в нем пикселы определенного цвета будут считаться прозрачными, и вместо них будет показываться цвет фона нашей формы. Естественно, если форма поменяет цвет, то и цвет таких "прозрачных" пикселов тоже поменяется. Сделать это можно двумя способами. При первом способе мы определяем, что "прозрачным" цветом будет цвет левого верхнего пиксела нашего bitmap'а. При втором способе мы просто определяем, какой конкретный цвет у bitmap'а будет считаться прозрачным (за это отвечает свойство TransparentColor типа TColor). Установка того или иного способа определения прозрачных пикселов задается свойством TransparentMode (возможные значения для него - tmAuto и tmFixed соответственно). И в том, и в другом случае надо установить свойство Transparent для нашего bitmap'а в true. А вот и пример кода:

  //Установка свойства прозрачности
  Bitmap.Transparent:=true;
  //Установка цвета левого верхнего
  //пиксела в качестве прозрачного
  Bitmap.TransparentMode:=tmAuto;
  Form1.Canvas.Draw(0, 0, Bitmap);
  //Установка конкретного цвета (красного)
  //в качестве прозрачного
  Bitmap.TransparentMode:=tmFixed;
  Bitmap.TransparentColor:=RGB(255, 0, 0);
  Form1.Canvas.Draw(20, 0, Bitmap);

В результате нашего фрагмента для первой картинки прозрачный цвет - это цвет левого верхнего пискела, для второй - красный цвет.

Наверх

Copyright Алексеев Игорь, 2002

Copyright сайт progs.biz, 2002



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное