ЛИСТИНГ 12.1 Обработчик события из Onclick из XMAKER.PAS

procedure TForml ButtonlClick(Sender TObject);
begin
WITH Canvas DO begin
MoveTo(0,0);
LineTo(ClientWidth,ClientHeight); MoveTo(CIientWidth,0); LineTo(0,ClientHeight);
end;
end;

Это весь код, который вам надо записать - до поры до времени. Сохраните проект как BIGS и файл модуля как - XMAKER.PAS. Запустите его. Нажмите кнопку - и вот ваш X! Убедитесь, что вы полностью поняли, для чего здесь присутствуют и LineTo и MoveTo. Я допускаю, что поначалу MoveTo не особенно нужен, так как позиция пера в новой форме является 0,0 по умолчанию. Но если вы захотите начать ваш X где нибудь еще, вам прийдется сначала передвинуть позицию пера. После первой LineTo позиция пера двинется к координатам OientWidth и ClientHeight, которые являются нижним правым углом клиентной области формы. И так как в нашей простой форме полотно покрывает всю клиентную область, это означает нижний правый угол полотна. Client-Width и ClientHeigt - оба являются свойствами TForm, и они всегда содержат размер клиентной области формы. Они могут быть чрезвычайно удобны для установки размера формы, основанной на графике. (Подсказка: OnResize происходит везде, где пользова тель изменяет размер формы.)

Это второй урок, который вы выучите, если расположите кнопку где нибудь на пути линий, образующих большую букву X: графика, нарисованная с LineTo, попадает под любой элемент управления формы. Существует общее правило: когда вы опускаете элементы управления на форму, они в действительности оказываются "на вершине" формы и, следовательно, на вершине полотна. Один элемент управления может быть на вершине другого элемента управления, но все элементы управления - всегда будут на вершине полотна формы, на которой они расположены. Не очень удобно рисовать на вершине элементов управления что-то типа кнопок. Кнопки, на самом деле, являются собственным творением Windows и управлялись Windows, и даже изменение цвета стандартной кнопки Windows не пустяк.

Создание полотна

Добрая половина знаний того, как накормить людей за общим столом, состоит в том, как убрать потом за ними. Очистить полотно до единственного цвета легко, действительно так легко, что я даже не собираюсь делать из этого проекта. Вот все, что вы делаете: опускаете вторую кнопку в любое место формы большой буквы X и создаете процедуру события для события OnClick. Единственная строка кода процедуры события выведет метод Refresh. Это все!

Когда вы выполняете метод Canvas.Refresh, все элементы изображения в массиве Pixels устанавливаются обратно в заданий свойством Color цвет.

Форма с обоими кнопками (и буквой X) показана на Рисунке 12.3.

Трата времени с шириной и стилем линии

Это невидимое перо, которым вы прокладываете путь с помощью позиции пера сам по себе является объектом типа ТРеп и свойством полотна. Перо рисует на новой форме сплошную черную линию шириной в одну точку растра, но вы можете изменить это изменением свойства Реп. При этом Pen.Width задает ширину линии. Она может быть любого приемлимого целого значения (я использовал в Delphi до 120 и не подавился).


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в среде Delphi



Новости за месяц

  • Декабрь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31