нкцій і змінних}
Begin
{оператори тіла програми}
End.
Типова головний програма програми має наступний вигляд:
Program Project 1;
Uses
Forms,
Unit 1 in 'Unit 1.pas' {Form 1}, Unit 2 in 'Unit 2.pas' {Form 2};
{$ R *. res}
{можна помістити опис констант, змінних, функцій, процедур, доступних для використання тільки в межах даного файлу}
Begin
Application. Initialize;
Application. CreateForm (TForm 1, Form 1);
Application. CreateForm (TForm 2, Form 2);
Application. Run;
End.
1) Програма починається з ключового слова program, після якого вказується ім'я програми (воно збігається з ім'ям файлу, в якому був збережений проект). Це ж ім'я присвоюється виконуваного файлу програми. За замовчуванням використовується ім'я Project1.
2) Після заголовка в тексті програми розташовується пропозиція:
Uses
Forms,
Unit 1 in 'Unit 1.pas' {Form 1}, Unit 2 in 'Unit 2.pas' {Form 2};
У цьому реченні перераховуються модулі, що завантажуються програмою. Перший модуль Forms є системним, а наступні - модулями розробленими самостійно форм. Даний приклад має на увазі, що в проекті були створені дві форми з іменами Form1, Form2 в модулях Unit1, Unit2. Ув'язнені у фігурні дужки назва форм представляють собою коментарі.
3) Наступний рядок тексту - {$ R *. res} - являє собою директиву компілятора, пов'язану з використанням файлів ресурсів. Зазначений файл повинен бути файлом ресурсів Windows. За замовчуванням використовується расшіреніе.RES для файлів ресурсів.
4) Перший оператор в тілі програми Application. Initialize; - ініціалізує додаток, наступний за ним оператор Application. CreateForm (TForm 1, Form 1); та Application. CreateForm (TForm 2, Form 2); - створюють об'єкти форми1 і форми2, останній оператор Application. Run; - починає виконання програми. p> Загальна структура файлу модуля:
Unit <ім'я модуля>;
Interface// Відкритий інтерфейс модуля (Можуть поміщатися списки модулів, оголошення типів, констант, змінних, функцій і процедур, до яких буде доступ з інших модулів)
Implementation// Реалізація модуля (можуть поміщатися списки модулів, оголошення типів, констант, змінних, функцій і процедур, до яких не буде доступу з інших модулів)
Initialization// (Необов'язковий розділ - оператори виконуються один раз при першому зверненні до модуля)
Finalization// (Необов'язковий розділ - оператори виконуються при будь-якому завершенні роботи модуля)
End.
Розглянемо тепер текст модуля з порожньою формою:
Unit Unit1;
Interface// Відкритий інтерфейс модуля
Uses {Список модулів, що підключаються}
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
Type {Оголошення класу форми}
TForm1 = class (TForm)
Private// закритий розділ класу
Public// відкритий розділ класу
End;
VarForm 1: TForm1;
Implementation// Реалізація модуля
{$ R *. dfm}
End.
4.1 Код програми В«Броунівський рух, як хаотичний рух частинокВ»
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, math;
type
TForm1 = class (TForm)
Label1: TLabel;
GroupBox1: TGroupBox;
Label2: TLabel;
Edit1: TEdit;
Button1: TButton;
Label3: TLabel;
Edit2: TEdit;
Label4: TLabel;
Edit3: TEdit;
Panel1: TPanel;
PaintBox: TPaintBox;
Button2: TButton;
procedure Button1Click (Sender: TObject);
procedure Button2Click (Sender: TObject);
private
{Private declarations}
public
{Public declarations}
procedure GetData;
end;
Molecula = record
x, y: Integer;// координати частинки
Vx, Vy: Integer;// складові швидкості
angle: real;// кут польоту
speed: byte;
end;
var
Form1: TForm1;
R, Vmax, n: integer;
mol: array [1 .. 100] of molecula;
run: boolean;
implementation
{$ R *. dfm}
procedure TForm1.GetData;
begin
R: = strtoint (Edit1.Text);// Радіус чістіци
Vmax: = strtoint (Edit2.Text);// Максимальна швидкість руху
n: = strtoint (Edit3.Text);// Кількість частинок
end;
procedure TForm1.Button1Click (Sender: TObject);
var i, j: byte;
temp: integer;
begin
GetData;
// запуск руху
PaintBox.Refresh;
PaintBox.Canvas.Brush.Color: = clBlack;
PaintBox.Canvas.Pen....