Основы программирования (947332), страница 64
Текст из файла (страница 64)
Она не имеет алгоритма в традиционном смысле, так как связь между отдельными частями незадана жестко, а зависит от последовательности наступления собьггий.Панель быстрого доступа[ШшШ1Ш1ЙЯ111Панель компонентовШ Foiml|Form1: TForml\Ш\Инспектор объектовТГогш! = cXa»s(T: огш)Заготовка формыЗаготовка программыРис. П5.1. Вид экрана при входе в Delphi391ПриложениеDelphi также поддерживает технологию визуального проектированияпользовательского интерфейса, согласно которой разработчику предоставляется возможность прямо на экране формировать интерфейс приложения изстандартных элементов, расположенных на панели компонентов.Создание приложения начинают с заготовки, предоставляемой Delphi.(Она представляет собой минимальное приложение и может быть запущенана выполнение, правда при отсутствии полезного эффекта.) Мышью выбирают на панели необходимый интерфейсный компонент и переносят его на заготовку формы.
При этом на первой закладке Properties Инспектора Объектов высвечиваются параметры компонента, заданные по умолчанию, которые можно переопределить, а на второй Events - перечень событий, которыеон может обрабатывать. То же происходит при выделении мышью уже установленного компонента.Визуально разработав интерфейс, программист определяет множествособытий, необходимых для выполнения требуемых функций, распределяетэти события между компонентами и программирует соответствующие обработчики.Среда Delphi предназначена для создания больших программ, элементыкоторых размещаются в разных файлах, но образуют единый проект.
Основная программа, содержащая описание проекта,^ размещается в файле с расширением .dpr. Как правило, она формируется самой средой Delphi, но принеобходимости программист может ее изменить.Кроме этого приложение включает одну или несколько интерфейсныхобъектов-форм, каждой из которых соответствует файл описания с расширением .dfm и модуль исходного текста на Delphi Pascal с расширением .pas.Файл описания формы и описание класса в модуле формируются автоматически в процессе визуального создания интерфейса, а тела методов проектируются и реализуются программистом. Возможно включение в проект и модулей, не связанных с формами, например, для хранения описаний классов,реализующих объекты предметной области.В результате успешной компиляции и компоновки программы создаются: исполняемый файл типа «ехе», имя которого совпадает с именем проекта, объектные модули с расширением .dcu и файлы ресурсов с расширением.res.Рассмотрим последовательность создания простейших приложений вDelphi на конкретных примерах.Пример П5Л.
Разработать калькулятор - приложение Windows, выполняющее основные арифметические операции.Разработку будем выполнять по шагам.1. Определение имени проекта и первого модуля. Для определения имени проекта используют пункт меню File\Save Project As... В появившемся окне создайте новую папку и сохраните в ней файл с именем MyProject. Для определения имени модуля необходимо щелкнуть либо по заготовке формы392Прплооюение(Forml), либо по окну заготовки программа (Unitl). Затем, используя пунктменю File\Save As..., сохраняем в той же папке, что и проект, модуль формыи саму форму под именем Calc.2. Определение заголовка окна программы. Заголовок окна программызадается в свойствах окна формы.
Для определения необходимо, предварительно выделив щелчком форму, на странице Propeties Инспектора объектовщелчком выделить свойство Caption (Заголовок) и ввести имя «Калькулятор».3. Размещение на форме окна ввода/отобраэюения чисел - однострочного текстового редактора. Для выполнения этой операции на странице Standartпалитры компонентов необходимо найти кнопку Edit, мышью перетащитьэтот компонеьгг в нужное место формы (рис. П5.2 , а) и мышью же скорректировать его размер. Чтобы удалить текст из окна компонента на страницеProperties Инспектора объектов необходимо найти свойство Text и очиститьего поле.Одновременно с размещением компонент Delphi добавляет объектныеполя в класс с именем TForml, наследуемый от стандартного класса TForm(рис. П5.2, б).4. Размещение кнопок операций на форме.
Для выполнения этой операции на странице Standart палитры компонентов необходимо найти кнопкуButton. Для того чтобы не перетаскивать каждый компонент отдельно, передвыбором мышью компонента следует нажать клавишу Shift. Теперь, щелкаямышью в нужных местах, можно установить сразу все семь кнопок. Дляотмены работы с кнопкой необходимо щелкнуть мышью по стрелке под словом Standart палитры компонентов. Затем, последовательно щелкая мышью^^^^^^^^ЕШг!Cub1, '<i»^ ^ ш">\\_ jt3^eд^Калысулятор B S E iШшшЩлШ'Ж}^-'iliii•iilliSш^1TForrril = cXassfTForin)E d i t l : TEdit;B u t t o n l : TButton;Button2: TButton;Buttons: TButton;Button4: TButton;Buttons: TButton;JJщшШШ1ШМШттмШ¥^^Ш1ШШ .<;|aбРис.
П5.2. Вид формы {а) и окна программы (б) во время проектирования393Прилоэюениепо установленным кнопкам, измените их размеры. После этого, используяИнспектор объектов, установите требуемые названия кнопок (свойствоCaption на странице Properties инспектора объектов) соответственно на «С»,«=», «+», «-», «*», «/» и «Quit». Теперь программу необходимо «научить» выполнять требуемые функции.5. Добавление обработчиков событий. Для добавления обработчиковсобытий обычно используют страницу Events Инспектора объектов.
На этойстранице указаны все события, на которые может реагировать выделенныйкомпонент. Выделите компонент Button 1 и, щелкнув по соответствующейстроке, выберете событие OnClick («щелчок мыши по компоненту»). Двойным щелчком по полю рядом с ним вызовите заготовку обработчика данного события и введите его текст:Procedure TForml.ButtonlClick(Sender: TObject);beginEditLClear;{очистить окно компонента Editl}operation:='@*; {установить состояние «первая операция»}EditLsetfocus; {установить активным окно компонента Editl}end;Если обработчик некоторого события уже определен, то по двойномущелчку мыши по его имени осуществляется переход на его текст.Аналогично добавляем тексты обработчиков других событий:• Button2Click - щелчок по кнопке «=»:Procedure TForml.Button2Click(Sender: TObject);Var s:string;beginoperate;{выполнить предыдущую операцию}operation:-'-^'{установить состояние «операция =»}Str(sum:6:3,s);{преобразовать результат в строку}EditLtext:=s;{вывести строку в окно компонента Editl}ButtonLsetfocus; {установить курсор на кнопку Button 1}end;• Button3Click - щелчок по кнопке «+»:procedure TForml.Button3Click(Sender: TObject);beginoperate;{выполнить предыдущую операцию}operation:-*-\-^; {установить состояние «операция +»}EditLsetfocus;{установить активным окно компонента Editl}end;394Прилолсеиие• Button4Click - щелчок по кнопке «-»:procedure TForml.Button4Click(Sender: TObject);beginoperate;{выполнить предыдущую операцию}operation:^*''; {установить состояние «операция -»}EditLsetfocus; {установить активным окно компонента Editl}end;• ButtonSClick - щелчок по кнопке «*»:procedure TForml.Button5Click(Sender: TObject);beginoperate;{выполнить предыдущую операцию}operation:='*^; {установить состояние «операция *»}EditLsetfocus; {установить активным окно компонента Editl}end;• Button6Click - щелчок по кнопке «/»:procedure TForml.Button6Click(Sender: TObject);beginoperate;{выполнить предыдущую операцию}operation:-V*; {установить состояние «операция /»}EditLsetfocus;{установить активным окно компонента Editl}end;• Button7Click - щелчок по кнопке «Quit»:procedure TForml.Button7Click(Sender; TObject);beginClose;{завершить работу приложения}end;в.
Добавление процедуры. Для выполнения вычислений необходимо добавить процедуру Operate. Поскольку она вызывается из обработчиков событий, ее необходимо вставить перед ними в секции реализации модуля:Procedure Operate;Var s:string; code:integer; n:double;Begins:-FormLEditLtext;{читаем сроку из Editl.text}FormLEditLclear;{очищаем Editl}395ПргшоэюениеVal(s,n,code);case operation of'@'; sum:-n;'+'; sum:=sum'^n;'-': sum:=sum'n;=sum*n;У: sum:=sum/n;end;{преобразуем строку в число}{выполняем операцию}end;7. Объявление переменных. Поскольку переменные, необходимые длявычислений, являются внутренними, объявляем их в секции реализации модуля (после служебного слова implementation):Var Sunudouble;operation: с1гаг=Щ';8.
Сохранение проекта. Для сохранения проекта используют пункт меню FiIe\SaveAll.9. Компиляция проекта. Для выполнения компиляции используют комбинацию клавиш Ctrl-F9 или пункт меню Project\Compile. Если при компиляции обнаружены ошибки, то внимательно проверьте текст программы.10. Запуск программы на выполнение. Для запуска программы используют клавишу F9 или пункт меню Run/Run или кнопку Run на панели быстрого доступа.Второй пример возьмем немного сложнее и выполним некоторые проектные операции в процессе его разработки. Причем, несмотря на очевидную простоту приложения, будем использовать объектную технологию какдля представления пользовательского интерфейса, так и для предметной области задачи.Пример П5.2. Разработать приложение Windows для возведения вводимых чисел в квадрат.А н а л и з .