Автор работы: Пользователь скрыл имя, 28 Декабря 2010 в 23:17, Не определен
Введение
Описание программы
Вербальная постановка задачи
Процедура обработки событий
Окончательный текст программы
Приложение 1. Содержимое диска
Список литературы
p1.Canvas.Brush.Color:=
p1.Canvas.Rectangle(0,0,p1.
p1.Canvas.Brush.Color:=
xSun:=p1.Width div 2; //Координата солнца по x
ySun:=p1.Height div 2; //Координата солнца по y
p1.Canvas.Ellipse(xSun-
p1.Canvas.Brush.Color:=
wEarth:=(2*pi)/Tearth*t; //Угловая скорость Земли
xEarth:=trunc(EarthRadius*cos(
yEarth:=trunc(EEarth*
p1.Canvas.Ellipse(xSun+xEarth-
p1.Canvas.Brush.Color:=
wLuna:=(2*pi)/TLuna*t; //Угловая скорость луны
xLuna:=trunc(LunaRadius*cos(
yLuna:=trunc(LunaRadius*sin(
p1.Canvas.Ellipse(xSun+xEarth-
end;
Для компонента TPaintBox на вкладке Events выбираем событие OnPaint. Событие OnPaint наступает, когда приходит сообщение о необходимости перерисовать испорченное изображении. Перерисовку изображения вызывает процедура Timer, поскольку координаты графических объектов изиеняются при каждой итерации процедуры Timer.
При двойном щелчке левой кнопкой мыши в поле, которое находится справа от названия события Delphi сгенерирует имя процедуры обработки события – P1Paint, и в открывшемся окне редактирования кода мы пропишем следующую инструкцию.
procedure TForm1.P1Paint(Sender: TObject);
begin
t:=0; {обнуление переменной}
p1.Canvas.Brush.Color:=
p1.Canvas.Rectangle(0,0,p1.
p1.Canvas.Brush.Color:=
xSun:=p1.Width div 2; //Координата солнца по x
ySun:=p1.Height div 2; //Координата солнца по y
p1.Canvas.Ellipse(xSun-
p1.Canvas.Brush.Color:=
wEarth:=(2*pi)/Tearth*t; //Угловая скорость Земли
xEarth:=trunc(EarthRadius*cos(
yEarth:=trunc(EEarth*
p1.Canvas.Ellipse(xSun+xEarth-
p1.Canvas.Brush.Color:=
wLuna:=(2*pi)/TLuna*t; //Угловая скорость луны
xLuna:=trunc(LunaRadius*cos(
yLuna:=trunc(LunaRadius*sin(
p1.Canvas.Ellipse(xSun+xEarth-
end;
Как видно, инструкция
процедуры TForm1.P1Paint полностью совпадает
с инструкцией процедуры
TForm1.Timer1Timer за исключением строчки
“t:=0;”.
При взаимодействии этих процедур происходит
следующее. Процедура Timer вызывает изменение
координат графических объектов за счет
изменения значения переменной t на единицу,
процедура Paint их прорисовывает и задает
их новые координаты как нулевые строчкой
t:=0. Через интервал времени Interval = 100 миллисекунд
процедура Timer вновь вызывает изменение
координат графических объектов, а процедура
Paint их заново прорисовывает и т.д. Таким
образом создается видимость движения
Земли вокруг Солнца и луны вокруг Земли.
Надо еще сказать, что все переменные и константы, используемые в программе надо объявить в соответствующих разделах программы var и const. Далее программа компилируется и если в программе нет синтаксических ошибок, компилятор создает исполняемый файл программы. Имя исполняемого файла такое же, как и у файла проекта, а расширение – exe.
Окончательный текст программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls,
StdCtrls, Buttons, System.ComponentModel;
type
TForm1 = class(TForm)
var
Form1: TForm1;
implementation
{$R *.dfm}
const SunSize=35; // радиус Солнца
EarthSize=11; //радиус Земли
EarthRadius=82; //расстояние от Солнца до Земли
TEarth=365.26; //период обращения Земли
LunaSize=4; //радиус Луны
LunaRadius=18; //расстояние от Земли до луны
TLuna=27.32; //период
обращения Луны
var t:integer;
xLuna,yLuna, xSun,ySun,xEarth,yEarth:
wa,wEarth,wLuna:double;
EEarth:double;
procedure TForm1.BitBtn3Click(Sender: TObject);
procedure TForm1.BitBtn2Click(Sender: TObject);
procedure TForm1.BitBtn1Click(Sender: TObject);
procedure TForm1.Timer1Timer(Sender: TObject);
procedure TForm1.P1Paint(Sender: TObject);
procedure TForm1.FormActivate(Sender: TObject);
end.
ПРИЛОЖЕНИЕ 1.
Содержимое диска.
Project.exe – исполняемый файл.
Project1.dpr – главный модуль
Project1.bdsproj – файл проекта.
Unit1.pas – файл модуля
Курсовой
проект.doc – документ MS Word
СПИСОК
ЛИТЕРАТУРЫ