Текст модуля Unit2.pas

ЛАБОРАТОРНЫЕ РАБОТЫ: ТЕОРИЯ И ЗАДАНИЯ

Текстовые компоненты Label, Edit, Memo. Кнопка Button

Пример использования компонентов Label, Edit, Memo и Button

Пример 1.1. Задание - Составить программу, вычисляющую корни квадратного уравнения

а2 * х2 + а1 * х + а0=0

с произвольными коэффициентами (a2 ≠0).

Решение

1. Создадим папку D:\MyProject\Text (можно любую другую).

2. Откроем новое приложение с помощью команды главного меню File | New
Application.

3. На форме Form1 разместим следующие компоненты: четыре метки Label, три компонента Edit, один редактор Memo и две кнопки Button

Все компоненты берем со страницы Standard Палитры Компонентов.

4. Свойству Caption метки Label1 зададим значение:

Введите коэффициенты квадратного уравне­ния

А2 * Х^2+А1 * Х+А0 = 0

Для того чтобы текст располагался в двух строках и был выровнен по центру для метки необходимо установить следующие значения свойств:

AutoSize - False,

WordWrap - True,

Alignment - taCenter.

Размеры метки и ее местоположение можно отрегулировать вручную.

Перейдем в свойство Font и щелкнем по кнопке с тремя точками. В появившемся окне изменим размер шрифта с 8 на 10. Нажмем ОК.

5. Для меток Label2, Label3 и Label4 установим свойство Caption равным ‘А0 = ‘, ‘ А1 = ‘ и ‘ А2 = ‘ соответственно.

6. Для компонентов Edit1, Edit2 и Edit3 установим значение свойства Text равным пустой строке.

7. Для компонента Memo1 выберем свойство Lines и щелкнем по кнопке с тремя
точками. В появившемся окне Stringlist editor удалим строку ‘Memо1’. Нажмем ОК.

8. Кнопкам Button1 и Button2 установим свойство Caption равным ‘Решение’ и ‘Очистить’ соответственно.

9. Двойным щелчком активизируем кнопку Решение и для обработчика события
OnClick вставим следующие строки:

procedure TForm1.Button1Click(Sender: TObject);

var a0, a1, a2, d, x1, x2: double;

begin

a0:= StrToFloat(Edit1.Text);

al:= StrToFloat(Edit2.Text);

a2:= StrToFloat(Edit3.Text);

d:= a1*a1-4*a2*a0;

if d>=0 then begin

xl:= (-a1+sqrt(d))/(2*a2);

x2:= (-a1-sqrt(d))/(2*a2);

Memo1.Lines.Add(‘Результат:’);

Memo1.Lines.Add(‘x1 = ’+ FloatToStrF(x1,ffGeneral,7,2));

Memo1.Lines.Add(‘x2 = ’+ FloatToStrF(x2,ffGeneral,7,2));

end

else

Memo1.Lines.Add(‘Решений нет:’);

end;

10. Нажмем клавишу F12 и вернемся в форму. Двойным щелчком активизиру­ем кнопку «Очистить» и в обработчик события OnClick вставим строку

Memo1.Clear;

11.Сохраним проект в папке D:\MyProject\Text и запустим приложе­ние на выполнение, используя функци­ональную клавишу F9 или кнопку «зелёный треугольник». Для решения квадратного уравнения введем коэффи­циенты и нажмем кнопку Решение. Для очистки окна редактора нажмем кнопку «Очистить»

Полный текст сформированного модуля Unit1.pas

 

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Memo1: TMemo;

Button1: TButton;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation {$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

var a0,a1,a2,d,x1,x2: double;

begin

a0: = StrToFloat(Edit1.Text);

a1:= StrToFloat(Edit2.Text);

a2:= StrToFloat(Edit3.Text);

d:= a1*a1-4*a2*a0;

if d>=0 then begin

x1:= (-a1+sqrt(d))/(2*a2);

x2:= (-a1-sqrt(d))/(2*a2);

Memo1.Lines.Add(‘Результат:’);

Memo1.Lines.Add(‘x1 =’+ FloatToStrF(x1, ffGeneral,7,2));

Memo1.Lines.Add(‘x2 =’+ FloatToStrF(x2, ffGeneral,7,2));

end

else

Memo1.Lines.Add(‘Решений нет:’);

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

Memo1.Clear;

end;

end.

Классы и компоненты Delphi,

Предназначенные для создания изображений.

 

Создать заставку для приложения.

Решение

Заставки имеют многие программы, работающие в операционных системах семейства Windows. Заставка представляет собой графическое изображение, появляющееся на несколько секунд после запуска программы. В ней может содержаться название про­граммного продукта и информация о разработчиках. Графическое изображение, т.е. файл с расширением.bmp, создадим с помощью графического редактора. Перед запуском Delphi создадим папку D:\MyProject\GRAFICA.

1. Откроем любое из ранее созданных приложений или создадим новое. Графический редактор запустим с помощью команды главного меню Tools|Image Editor.

Работа в графическом редакторе Delphi мало чем отличается от работы в извес­тном графическом редакторе Paint. При создании графического файла вы можете поступить одним из двух способов - либо создать новый файл, либо внести изме­нения в существующий. Выберем первый способ. Выполним команду главного меню File|New|Bitmap File(.bmp). В появившем­ся диалоге Bitmap Properties в поле Width (ширина) установим — 300, а в поле Height (высота) - 200. В группе переключателей Colors выберем переключатель VGA (16 colors) или любой другой, в зависимости от того, сколько цветов вы хотите включить в свой рисунок.

Нажмем ОК.

4. Создадим произвольное изображение. Для того чтобы выбрать цвет символов, следует подвести курсор мыши к окну с требуемым цветом в палитре цветов и нажать левую клавишу. При нажатой правой клавише мыши выбранный цвет будет использоваться в качестве цвета фона. В простейшем случае можно поступить, например, так: набрать черными буквами на белом фоне текст:

Разработчик — Студентиков С.С.

Пример создания

ЗАСТАВКИ

Выберем черный цвет для символов, белый для фона в палитре цветов. Выполним команды EditSSelect All и EditSCut для очистки рисунка. Далее вставим приведен­ный выше текст. Для этого воспользуемся кнопкой T (Text) инструментальной панели. Прежде чем размещать текст, следует задать характеристики шрифта с помощью коман­ды Text|Font.

5. Выполним команду File | Save и сохраним графический файл в папке D:\MyProject\GRAFICA под именем ris.bmp.

Выйдем из графического редактора по команде File | Exit.

Со страницы System поместим на форму Form1 компонент Timer. Он получит имя Timer1. Свойство Interval установим равным 3000.

Со страницы Additional поместим на форму компонент Image (имя - Image1).

Выберем свойство Picture и нажмем кнопку с тремя точками. Появится окно Picture Editor. Нажмем кнопку Load. Войдем в папку D:\MyProject\GRAFICA и вы­берем файл ris.bmp. В Picture Editor нажмем ОК. Для того чтобы рисунок был виден полностью, установим свойство Autosize в True. После этого расположим рисунок так, чтобы он находился в центре формы.

Активизируем компонент Timer1 двойным щелчком и создадим следующий обра­ботчик события OnTimer:

 

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Image1.Free;

Timer1.Free

end;

 

Это означает, что через 3000 миллисекунд после запуска приложения компонен­ты Image1 и Timer1 будут удалены из памяти компьютера и соответственно - с экрана.

Сохраним проект под именем Project1 (можно под любым другим) и модуль под именем Unit1 в папке D:\MyProject\GRAFICA. Запустим проект на выполнение. На рисунке изображен внешний вид приложения в момент его запуска.

 

Разработчик – Студентиков С.С.

Пример создания

ЗАСТАВКИ

 

Полный код сформированного модуля. Текст модуля Unit1.pas

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;

type

TForm1 = class(TForm)

Timer1: TTimer;

Image1: TImage;

procedure Timer1Timer(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Image1.Free;

Timer1.Free

end;

end.

Если бы нам потребовалось, чтобы заставка «мигала», т.е. периодичес­ки появлялась и исчезала, мы могли бы создать следующий обработчик события OnTimer:

 

procedure TForm1.Timer1Timer(Sender: TObject);

begin

if Image1.Visible = true

then Image1.Hide

else Image1.Show;

end;

 

Пример 2.2

Создадим приложение, демонстрирующее «вращение Луны вокруг Земли».

Решение

1. Создадим новое приложение.

2. Со страницы System поместим на Form1 компонент Timer под именем Timer1. Его свойство Interval установим равным 55. Через каждые 55 миллисекунд будет воз­буждаться событие OnTimer, которое мы будем использовать для перемещения по форме компонента Shape2. Число 55 - это минимальное значение, называемое ти­ком, которое можно установить в качестве значения свойства Interval. В общем случае любое значение свойства Interval будет округлено в большую сторону до числа, кратного 55. Это связано с особенностями аппаратного таймера компьютера.

3. Со страницы Additional поместим на Form1 компонент Shape под именем Shape1.
Установим следующие значения для его свойств:

Shape - stCircle,

Height - 121,

Width - 121,

Left - 240,

Top - 104.

Выберем свойство Brush и выполним по нему двойной щелчок мышью. В Инс­пекторе Объектов дополнительно появились два свойства: Color и Style. Выберем свойство Color и установим его равным clBlue.

4. Поместим на Form1 компонент Shape под именем Shape2. Установим следующие значения для его свойств:

Shape - stCircle,

Height - 41,

Width - 41,

Left - 400,

Top - 152.

В свойстве Brush установим цвет кисти clYellow.

5. В верхней части Form1 разместим компонент Label под именем Label1. Его свой­ству Caption зададим значение – ‘Вращение Луны вокруг Земли’. Войдем в свой­ство Font и установим:

Шрифт - Courier New,

Начертание - полужирный,

Размер - 16,

Набор символов - кириллица.

Свойство Transparent установим равным True.

6. Активизируем двойным щелчком компонент Timer1. Внесем исправления в текст модуля, начиная с раздела var

 

Текст модуля Unit2.pas

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls;

type

TForm1 = class(TForm)

Timer1: TTimer;

Shape1: TShape;

Shape2: TShape;

Label1: TLabel;

procedure Timer1Timer(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1; x:real;

 

implementation

{$R *.DFM}

 

procedure TForm1.Timer1Timer(Sender: TObject);

begin

x:= x + 0.1;

Shape2.Left:=265 + trunc(150 * cos(x));

Shape2.Top:=150 - trunc(150 * sin(x))

end;

initialization

x:= 0

end.

 

Заметим, что обработчик события OnTimer предназначен для увеличения текуще­го значения переменной х и, соответственно, для изменения текущего положения компонента Shape2 на форме. Это означает, что переменная х должна быть гло­бальной по отношению к процедуре TForm1.Timer1Timer и ее следует описать в разделе var секции interface. Начальное значение переменной х может быть зада­но в секции initialization.

7. Выполним команду главного меню File|Save All и сохраним проект под именем Project2, модуль под именем Unit2 в папке D:\MyProject\Flight. Запустим проект на выполнение.

 

Пример 2.3.

Создадим изображение с помощью компонента PaintBox.

Решение

Компонент PaintBox предоставляет в наше распоряжение окно, в котором мы можем создать произвольное изображение. Программный код, создающий изображение, дол­жен располагаться в обработчике события OnPaint.

Нарисуем круговую диаграмму, содержащую четыре сектора красного, белого, сине­го и желтого цвета. Для каждого сектора выведем текст, содержащий размер секто­ра в процентах.

1. Создадим новое приложение.

2. Поместим на Form1 компонент PaintBox под именем PaintBox1. Установим его размеры: Height = 200; Width = 200.

3. В Инспекторе Объектов перейдем на страницу Events и выполним двойной щел­чок по правому полю в строке, содержащей имя события OnPaint. В модуле Unit3.pas сформируем обработчик события OnPaint.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: