
- •Курск - 2003
- •Интегрированная среда Delphi
- •Цель лабораторной работы
- •Информационные материалы
- •Главное окно
- •Окно редактора кода
- •Окно дерева объектов
- •Окно браузера
- •Лабораторная работа №2 Основы визуального программирования
- •Лабораторная работа №3 Линейные вычислительные процессы
- •Лабораторная работа №4 Итерационные вычислительные процессы
- •Лабораторная работа №5 Циклические вычислительные процессы
- •Лабораторная работа №6 Обработка строковых данных
- •Лабораторная работа №7 Обработка одномерных массивов
- •Лабораторная работа №8 Обработка матриц
- •Лабораторная работа № 9 Программирование операций с матрицами
- •Лабораторная работа №10 Программирование файловых операций
- •Лабораторная работа №11 Графические средства Delphi
- •Библиография
Лабораторная работа №3 Линейные вычислительные процессы
Цель лабораторной работы
Целью лабораторной работы является приобретение практических навыков программирования линейных вычислительных процессов.
2. Условия: вычислить сумму квадратов каждой цифры трехзначного числа.
3. Используемые компоненты и их свойства
№ |
Имя компонента |
Настраиваемые свойства |
Значения |
Комментарии |
1 |
2 |
3 |
4 |
5 |
1 |
Form1 (форма) |
BorderIcons
BorderStyle
Caption Menu PopUpMenu |
{biSystemMenu, biMinimize} bsSingle
Summator MainMenu1 PopUpMenu1 |
Системное меню Кнопка минимизации
Рамка толщиной в 1 пиксель, окно не может изменять размеры Заголовок формы Главное меню Меню по правой кнопке мыши (локальное) |
2 |
Label1 (метка) |
Caption |
Введите трехзначное число |
Надпись |
3 |
Label 2 (метка) |
Caption |
Результат |
Надпись |
4 |
Button1 (кнопка) |
Caption Action |
Выполнить ARun |
Надпись Действие, связанное со свойством Action |
5 |
Close (Button 2, кнопка) |
Name Action Caption |
Close AClose Выход |
Имя компонента Действие Надпись |
6 |
MaskEdit1 (специализированный редактор) |
EditMask
MaxLength Text OnClick |
! 999; 1; 0
3 |___| MaskEdit1- Click
|
Маска ввода !-подавление ведущих пробелов 9-может содержать цифру длина ввода текст ввода событие компонента |
1 |
2 |
3 |
4 |
5 |
|
MainMenu1 (главное меню) |
Name
Caption
Name
Name Caption
Action ShortCut
OnClick Name Caption Name Caption
Action ShortCut
OnClick
Caption
Name Name Caption
OnClick (страница Events) Name Caption Name Caption
OnClick (страница Events) |
MainMenu1
&Меню
Menu
MRun &Выполнить
ARun 114
ARunExecute N1
MClose &Выйти
AClose 121
Aclose- Execute &Help
Help1 N3 Условие
NClick
N4
About… &About
MaboutClick
|
Имя компонента
Наименование пункта меню Имя пункта меню
Имя опции меню Наименование опции меню Действие клавиша – акселератор F3 событие опции меню имя опции меню разделительная черта имя опции меню наименование опции меню действие клавиша – акселератор F10 событие опции меню
наименование пункта меню имя пункта меню имя опции меню наименование опции меню событие опции меню
имя опции меню разделительная черта имя опции меню наименование опции меню событие опции меню
|
1 |
2 |
3 |
4 |
5 |
8 |
PopUpMenu1 (локальное меню) |
Name Name Caption
ShortCut
Action OnClick (страница Events) Name Caption
ShortCut
Action OnClick (страница Events)
Name Caption |
PopUpMenu1 PRun Выполнить
114
ARun ARunExecute
PClose Выйти
121
AClose AСlose- Execute
N2 ____
|
имя компонента имя пункта меню наименование пункта меню клавиша – акселератор F3 действие событие пункта меню
имя пункта меню наименование опции меню клавиша – акселератор F10 действие событие пункта меню
имя пункта меню разделительная черта |
9 |
ActionList1 (механизм действий) |
Actions Name Caption
OnExecute (страница Events) Actions Name Caption
OnExecute |
ARun ARun ARun
ARunExecute
AClose AClose AClose
AСlose- Execute |
пункт свойства Actions имя значение, которое будет устанавливаться в свойствах Caption всех компонентов, связанных с этим действием. событие пункта
пункт свойства Actions имя значение, которое будет устанавливаться в свойствах Caption всех компонентов, связанных с этим действием. событие пункта
|
Задание свойств осуществляется на странице Properties путем выбора соответствующей строки и задания ее значения. Компонент MainMenu - главное меню формы – после установки на форму создаются его опции. Для этого следует дважды щелкнуть по компоненту левой кнопкой и войти в редактор (Form1.MainMenu1). Для задания опции необходимо войти в инспектор объектов (страница Properties) и в поле Caption задать текст опции и нажать Enter и т.д. По умолчанию опция имеет имя N и соответствующий по порядку номер (№3, №2…). Каждый пункт меню, опция есть объект класса TMenuItem. Опция меню может быть связана с каким-то действием своим свойством Action (эти действия должны быть описаны в компоненте ActionList).
Компонент PopUpMenu1 – локальное меню. Его опции создаютя с помощью конструктора меню (Form1.PopUpMenu1). Так же, как и для MainMenu.
Компонент ActionList – механизм действий. Дважды щелкните по компоненту, размещенному на форме, и с помощью редактора Editing.Form1.ActionList1 создайте действия (ARun, AClose). Выделение любого из них позволяет получить в инспекторе объектов страницу свойств, относящихся к выделенному действию. Введите их, как определено выше.
Другие компоненты.
Необходимо отметить, что форма является основным блоком в Delphi. Любая программа имеет как минимум одну связанную с ней форму, которая называется главной. По умолчанию мы использовали обычную форму (свойство FormStyle=ssNormal).
Свойство BorderIcons определяет наличие кнопок в заголовке окна (biSystemMenu – имеется кнопка вызова системного меню; biMinimize – имеется кнопка минимизации).
Свойство BorderStyle определяет стиль рамки (bsSingle означает, что используется рамка толщиной в 1 пиксель; такое окно не может иметь свои размеры).
Свойство Caption позволяет присвоить форме вместо безликого Form1 некоторое другое название.
Свойства Menu и PopUpMenu связывают форму с главным меню, локальным меню. Форма имеет также ряд других свойств.
TLabel – метка – компонент этого класса предназначен для размещения на форме различного рода текстовых надписей (свойство Caption). Свойство Font позволяет разнообразить вид надписи (цвет, шрифт и т.п.).
TButton – кнопка – используется для управления программами. Связанный с кнопкой алгоритм управления реализуется в обработчике события OnClick. Кнопка имеет надпись (свойство Caption) и имя (свойство Name).
TMaskEdit – специализированный редактор – предназначен для ввода текста, соответствующего некоторому шаблону, задаваемому свойством EditMask. Если это свойство не задано, TMaskEdit работает как обычный редактор TEdit. Шаблон из трех частей, отделенных друг от друга символами. Первая часть задает маску ввода (! 999 ; ); вторая – это символ 0 или 1, определяющий записывает ли в Text результат наложения маски (1) или исходный текст (0); в третьей части указывается символ, который в окне редактора будет стоять в полях, предназначенных для ввода символов (у нас – 0, можно *).
4. Форма задания
5. Текст программы.
unit Umain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ActnList, StdCtrls, Mask;
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
MainMenu1: TMainMenu;
PopupMenu1: TPopupMenu;
ActionList1: TActionList;
Label2: TLabel;
Label3: TLabel;
Menu: TMenuItem;
MRun: TMenuItem;
N1: TMenuItem;
MClose: TMenuItem;
PRun: TMenuItem;
N2: TMenuItem;
PClose: TMenuItem;
ARun: TAction;
AClose: TAction;
Close: TButton;
MaskEdit1: TMaskEdit;
Help1: TMenuItem;
MAbout: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
procedure ACloseExecute(Sender: TObject);
procedure ARunExecute(Sender: TObject);
procedure MAboutClick(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure MaskEdit1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses UAbout;
{$R *.dfm}
procedure TForm1.ACloseExecute(Sender: TObject);
begin
Halt(1);
end;
procedure TForm1.ARunExecute(Sender: TObject);
var
St : String;
i : Integer;
Summ : Integer;
begin
summ:=0;
St:=MaskEdit1.Text;
for i:=1 to 3 do
begin
if st[i]=' '
then St[i]:='0'
else summ:=summ+StrToInt(St[i])*StrToInt(St[i]);
end;
Label3.Caption:=IntToStr(summ);
end;
procedure TForm1.MAboutClick(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
end;
procedure TForm1.N3Click(Sender: TObject);
begin
ShowMessage('Вычислить сумму квадратов каждой'+
' цифры трёхзначного числа .');
end;
procedure TForm1.MaskEdit1Click(Sender: TObject);
begin
Label3.Caption:='0';
MaskEdit1.Text:='000';
end;
end.
6. Комментарии к тексту программы
Объявленный класс TForm1 содержит компоненты и методы, описанные в п.3. Необходимо определить код для пяти методов: ACloseExecute, ARunExecute, MAboutClick, N3Click, MaskEdit1Click. Перечень компонентов указывает имя компоненты, а также тот класс, к которому эта компонента относится (например, Label1: TLabel). Напомню, что каждый пункт меню относится к классу TMenuItem.
Процедура ACloseExecute обеспечивает закрытие формы Form1. Вызывается эта процедура как из главного меню, так и из локального по кнопке Выход.
Процедура MAboutClick обеспечивает создание формы Form2, на которой размещена рекламная информация. Имя модуля в котором содержится вызываемая форма, указывается в основной форме (см. Uses UAbout). Закрывается форма Form2 кнопкой ОК.
Процедура N3Click реализуется при выборе пункта меню Help и его опции Условие.Выводится стандартное окно сообщения (ShowMessage). Закрывается окно сообщения кнопкой ОК.
Процедура MaskEdit1Click реализуется по щелчку левой кнопкой мыши на компоненте MaskEdit1. При этом обнуляется поле ввода и поле результата.. Можно вводить новое число.
Процедура ARunExecute реализует действия, определенные заданием.
Функция StrToInt преобразует символьное представление цифры в численное значение.
Функция IntToStr преобразует число в символьное представление для вывода.
7. Содержание отчета
задание;
описание свойств используемых компонент и форм;
текст программы с комментариями;
результат вычислений.
8. Тренировочные вопросы к защите:
Какие разновидности форм реализуются в Delphi?
Что определяет свойство ActiveControl формы?
Что определяет свойство формы BorderIcons?
Какое свойство формы определяет стиль рамки?
Способы задания клиентской части окна.
Каким образом делается ссылка на главное меню, локальное меню формы?
Каким образом в надписи Label можно указать оконный управляющий элемент?
Что содержит свойство FocusControl компонента Label?
Для чего можно использовать свойство AutoSize компонента Label?
В каком обработчике события реализуется связанный с кнопкой Button алгоритм управления?
Что понимается под модальным окном?
Какие стандартные значения имеет ModalResult?
Из каких трех частей состоит шаблон для компонента MaskEdit?
Каким образом выглядит маска в MaskEdit, если необходимо вводить только цифры? только буквы?
Каким образом создаются опции меню?
Что содержит свойство Items компонента MainMenu?
Как задать клавишу-акселератор для быстрого выбора опции меню?
Какое свойство определяет индекс опции в списке Items?