Вывод текста под углом

Категория: Учебники по Delphi » Быстрый старт в Delphi

Сейчас мы рассмотрим один интересный прием — как можно вывести текст под углом. Как вы могли заметить, пока использовалась только функция, которая умеет выводить текст горизонтально, и никаких больше намеков на возможность разверз нуть текст и написать его, например, вертикально.

Создайте новый проект. Теперь создайте обработчик события oncreate для главной формы. В этой процедуре напишите следующее:

procedure TForm1.FormCreate(Sender: TObject);

begin

index:=0; end;

 

index— это будет счетчик, но его еще надо объявить, поэтому переходим в объявления private и там пишем следующее:

private { Private-Deklarationen } index:Integer; cl:Boolean;

Основные приготовления закончены, и мы можем переходить непосредственно к программированию. Назначение переменных мы рассмотрим позже, а сейчас соз­дайте обработчик события для главной формы onmousedown. Это событие срабаты­вает, когда пользователь щелкнул мышью по форме. 

 

Работа с текстом в графическом режиме

Категория: Учебники по Delphi » Быстрый старт в Delphi

Работа с текстом в графическом режимеКонечно же, название этой части достаточно расплывчато и не точно, потому что Windows сам по себе графический и вся работа происходит в графическом ре­жиме. Но все же иногда мы работаем с текстом, воспринимая его как текст, а ино­гда текст выводится в виде графики.

Для вывода текста на экран у объекта TCanvas есть метод Textout. У этого ме­тода три параметра:

  • х — координата позиции текста;
  • y — координата позиции текста;
  • непосредственно строка текста, которую надо вывести. Создайте новое приложение и для события OnPaint напишите код:
    Canvas.TextOut(100,100, 'Привет всем!!!');

Здесь производится вывод на экран текста в координатах (100, 100). За стиль шрифта отвечает свойство Font объекта TCanvas. Это свойство также имеет объектный тип (TFont), у которого очень много свойств. Среди них, конечно же, есть и свойство color, так что поместим на форму кнопку и coiorDialog, что­бы можно было менять цвет текста.

Для события onclick кнопки пишем следующее:

if ColorDialogl.Execute then FormPaint(nil);

 

Свойства кисти в Delphi

Категория: Учебники по Delphi » Быстрый старт в Delphi

За параметры кисти отвечает свойство Brush объекта TCanvas. Как уже говори­лось, кисть используется для закраски замкнутых пространств. Она тоже имеет объектный тип, как и карандаш, а значит, обладает своими свойствами и методами.

 

У объекта кисти TBrush есть несколько свойств, влияющих на параметры кисти.

  • Bitmap— картинка, которая будет использоваться в качестве фона закраски.

Картинка должны быть формата 8x8 пикселов. Если будет больше, то задейст­вованы будут только пикселы верхнего левого квадрата 8x8.

 

Свойства карандаша в Delphi

Категория: Учебники по Delphi » Быстрый старт в Delphi

Свойства карандаша в DelphiТеперь давайте разберемся с цветом, а параллельно будет знакомиться с графи­ческими функциями. Как мы уже знаем, для рисования используется два понятия цвета— цвет карандаша и цвет кисти. За стиль карандаша (в том числе и цвет) от­вечает СВОЙСТВО Реп объекта TCanvas. За СТИЛЬ КИСТИ отвечает СВОЙСТВО Brush. И Brush и Реп — это тоже объекты. У них есть свои свойства, о которых мы и по­говорим в этой статье.

Для начала разберемся с объектом треп. У него есть ряд свойств. Рассмот­рим их.

  • color — цвет карандаша.
  • Handle— здесь находится описание карандаша, которое можно использовать при обращении напрямую к WinAPI-функциям.

ПРИМЕЧАНИЕ. У большинства объектов есть свойство Handle, которое нужно только для API-функций. В обычных программах его использовать не будем.

  • Mode — режим отображения, который показывает, как будет рисоваться линия.
  • style— стиль карандаша. Существуют следующие стили (графическое ото­бражение стилей линий вы можете увидеть на рис. ниже):
  • psSolid — сплошная линия;
    • psDash— линия в виде пунктира (состоит из коротких линий);
  • psDot — линия из точек;
  • psDashDot— линия с чередующи­мися черточками и точками;
  • psDashDotDot—линия с чередующи­мися черточками и двумя точками;
  • psciear — невидимая линия;
  • psInsideFrame — ЛИНИЯ внутри формы (внешне похожа на сплошную).
  • width— ширина карандаша.
 

Первый пример работы с графикой в Delphi

Категория: Учебники по Delphi » Быстрый старт в Delphi

Первый пример работы с графикой в DelphiДавайте попробуем написать простейший пример, в котором будет рисоваться обычный квадрат. Но для усложнения задачи квадрат будем рисовать не на форме, а внутри компонента TPaintBox, который очень хорошо подходит для этих целей.

 

Создайте новое приложение и поместите на него компонент PaintBox с вкладки System палитры компонентов. Постарайтесь разместить этот компонент в нижней половине окна.

У формы и у PaintBox есть свойство canvas, значит, на них можно рисовать. Ри­сование лучше всего производить по событию onPaint, которое также есть у обоих компонентов. Итак, создадим обработчик события OnPaint для формы и напишем тут следующее:

Canvas.Rectangle(10,10,100,100);

Здесь мы вызываем метод Rectangle объекта canvas нашей главной формы. У этого метода четыре параметра.

  1. Левая позиция квадрата.
  2. Верхняя позиция квадрата.
  3. Правая позиция.
  4. Нижняя позиция.

Теперь выделите компонент PaintBox и создайте такой же обработчик события OnPaint для этого компонента. В нем напишите следующее: PaintBoxl.Canvas.Rectangle(10,10,100,100);

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

 

Попробуйте запустить приложение, и вы увидите два квадрата (рис. 12.2). Оба они рисуются с помощью метода Rectangle с одними и теми же параметрами и, по идее, должны быть нарисованы в одном и том же месте. Но в реальности это не так, потому что первый квадрат рисуется на форме, и координаты его отсчитыва- ются относительно формы (10, 0, 100, 100), а второй— внутри компонента, и координаты его отсчитываются от- носительно этого компонента (10, 0, 100, 100).

 

Почему в примере рисование про­исходит именно в обработчике собы­тия OnPaint? Просто событие генери­руется каждый раз, когда нужно приложение и поместите код рисования квадрата в обработчик события Onshow. В лучшем случае вы увидите квадрат, но если свернуть окно или просто перекрыть другим и потом снова открыть его, то квадрат исчезнет.

 

СОВЕТ. Windows не запоминает графику, которая была в окне и полагается на вашу программу. Единственное, что делает ОС— направляет программе событие Paint (WM_PAINT), которое указывает на необходимость самостоятельной перерисовки со­держимого окна. Именно поэтому желательно производить рисование в обработчике OnPaint или хотя бы вызывать в нем функцию, которая будет восстанавливать необ­ходимую графику в окне.