Лекции.ИНФО


Delphi. Основные характеристики и терминология



Delphi - это комбинация нескольких важнейших технологий:

· высокопроизводительный компилятор в машинный код;

  • объектно-ориентированная модель компонент;
  • визуальное (а следовательно, и скоростное) построение приложений из программных прототипов;

· масштабируемые средства для построения баз данных.

Компилятор в машинный код, встроенный в Delphi, обеспечивает высокую производительность, необходимую для построения приложений в архитектуре “клиент-сервер”. Этот компилятор в настоящее время является самым быстрым в мире, его скорость компиляции составляет свыше 120 тысяч строк в минуту на компьютере 486DX33. Он предлагает легкость разработки и быстрое время проверки готового программного блока, характерного для языков четвертого поколения (4GL) и в то же время обеспечивает качество кода, характерного для компилятора 3GL. Кроме того, Delphi обеспечивает быструю разработку без необходимости писать вставки на Си или ручного написания кода (хотя это возможно).

В процессе построения приложения разработчик выбирает из палитры компонент готовые компоненты как художник, делающий крупные мазки кистью. Еще до компиляции он видит результаты своей работы - после подключения к источнику данных их можно видеть отображенными на форме, можно перемещаться по данным, представлять их в том или ином виде. В этом смысле проектирование в Delphi мало чем отличается от проектирования в интерпретирующей среде, однако после выполнения компиляции мы получаем код, который исполняется в 10-20 раз быстрее, чем то же самое, сделанное при помощи интерпретатора. Кроме того, компилятор компилятору рознь. В Delphi компиляция производится непосредственно в родной машинный код. Существуют компиляторы, превращающие программу в так называемый p-код, который затем интерпретируется виртуальной p-машиной. Это не может не сказаться на фактическом быстродействии готового приложения.

Объектно-ориентированная модель программных компонент. Основной упор этой модели в Delphi делается на максимальном реиспользовании кода. Это позволяет разработчикам строить приложения весьма быстро из заранее подготовленных объектов, а также дает им возможность создавать свои собственные объекты для среды Delphi. Никаких ограничений по типам объектов, которые могут создавать разработчики, не существует. Действительно, всё в Delphi написано на нём же, поэтому разработчики имеют доступ к тем же объектам и инструментам, которые использовались для создания среды разработки. В результате нет никакой разницы между объектами, поставляемыми Borland или третьими фирмами, и объектами, которые вы можете создать.

В стандартную поставку Delphi входят основные объекты, которые образуют удачно подобранную иерархию из 270 базовых классов. Для начала - неплохо. Но если возникнет необходимость в решении какой-то специфической проблемы на Delphi, советуем, прежде чем попытаться начинать решать проблему “с нуля”, просмотреть список свободно распространяемых или коммерческих компонент, разработанных третьими фирмами, количество этих фирм в настоящее время превышает число 250. Разработка интерфейса в Delphi является самой простой задачей для программиста.

Быстрая разработка работающего приложения из прототипов. Игровая программа Rendzu была собрана из готовых кусков за рабочий день, причем большая часть времени была посвящена прихорашиванию и приукрашиванию. Screen Saver в виде прыгающих часиков был также изготовлен на Delphi за весьма незначительное время. Конечно, на разработку серьезной информационно-поисковой системы в архитектуре клиент-сервер может уйти гораздо большее время, чем на разработку программы-игрушки. Тем не менее, многие программисты, до Delphi программировавшие на других языках, утверждают, что на Delphi скорость изготовления сложного проекта выше раз в 10.

Cреда Delphi включает в себя полный набор визуальных инструментов для скоростной разработки приложений (RAD - rapid application development), поддерживающей разработку пользовательского интерфейса и подключение к корпоративным базам данных. VCL - библиотека визуальных компонент, включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE. Единственное, что можно поставить в вину Delphi, это то, что готовых компонент, поставляемых Borland, могло бы быть и больше. Однако, разработки других фирм, а также свободно распространяемые программистами freeware-компоненты уже восполнили этот недостаток. Аналогичная ситуация складывалась при развитии среды программирования Visual Basic. Соответствующий стандарт компонент назывался VBX. Этот стандарт так же поддерживается в Delphi. Однако визуальные компоненты в Delphi обладают большей гибкостью. Проблема в Visual Basic была в следующем: прикладной программист программировал, вообще говоря, в среде языка бэйсик, а компоненты в стандарте VBX готовили ему его коллеги-профессионалы на С++. VBX’ы приходили, “как есть”, и ни исправить, ни добавить ничего было нельзя. Для изготовления VBX надо было осваивать “кухню” языка C++. В Delphi визуальные компоненты пишутся на объектном паскале, на том же паскале, на котором пишется алгоритмическая часть приложения. И визуальные компоненты Delphi получаются открытыми для надстройки и переписывания.

Порядок выполнения работы

Задание 1

Запустите Delphi.После загрузки программы на экране монитора должен наблюдаться вид (рис. 1), состоящий из 5 элементов (окон):

1) панелей инструментов Delphi (верхняя часть экрана);

2) окно формы (Form1);

3) окно программного кода unit1.pas (Code Explorer);

4) окно просмотрщика дерева объектов (Object TreeView);

5) окно инспектора объектов (Object Inspector).

Если какого-то элемента нет на экране, то поместите его на экран, вызывая каталог View из главного меню и нажимая левую кнопку мыши на имя отсутствующего элемента (рис. 2). Можно поместить окно на форму, используя комбинации управляющих клавиш (см. рис. 2).

В правом верхнем углу каждого элемента имеется кнопка с крестом. Можно закрыть соответствующий элемент, наведя указатель мыши на эту кнопку и нажав левую клавишу мыши.

Уберите с экрана каждый из элементов и снова поместите его на экран. Повторите эту операцию по пять раз для каждого окна.

Проделайте операцию вызова окна на экран с использованием клавиатуры. Повторите вызов каждого из окон с помощью клавиатуры по пять раз.

Вызовите на экран из меню View окно управления проектом (Project Manager). Открывая вложенные папки, убедитесь, что полученная картинка совпадает по названиям элементов с элементами рис. 3. Здесь приведен минимально необходимый набор элементов для запуска и работы программы. Повторите операцию вызова окна управления проектом пять раз. Это окно нужно вызывать в первую очередь при неполадках в запуске программы.

 

 

Из четырех окон, расположенных на экране, только одно окно является активным. Какое из окон активное, а какое неактивно можно определить по заголовкам окон. Если заголовок выделен жирным шрифтом – окно активно. Если цвет заголовка бледный – окно неактивно. Наводя указатель мыши на любую точку соответствующего окна (за исключением крестика в правом верхнем углу) и нажимая левую клавишу мыши (в дальнейшем эта операция будет коротко именоваться «выбор» или «переход»), можно активизировать соответствующее окно. Перейдите на неактивное в данный момент окно, не убирая активное окно с экрана. Посмотрите, как изменятся заголовки окон.

Проделайте операции перехода на каждое из четырех окон не менее 5 раз. Добейтесь автоматизма операции перехода.

Задание 2

Перейдите на окно формы. Обратите внимание на надписи в инспекторе объектов и в окне дерева объектов. В обоих имеется надпись Form1. Измените заголовок формы на надпись «Моя первая программа». Для этого проделайте следующее. Перейдите к инспектору объектов. Найдите в списке свойств заголовок формы. Он называется по-английски Caption. Нажмите левую кнопку мыши на поле справа от заголовка (в данный момент там написано Form1). Напишите по-русски: Моя первая программа - и нажмите Ввод (Enter). Заголовок на форме изменится. Обратите внимание, что при этом не изменятся названия ни в инспекторе объектов, ни в дереве объектов. Заголовок формы не играет никакой роли при выполнении программы, а только помогает программисту определить, какая форма проектируется. Название может быть написано на любом языке. Замените заголовок формы любым другим названием, какое Вам придет в голову.

Найдите в инспекторе свойство Name (Имя). В нем написано Form1. Это то самое имя, на которое ссылается программа при выполнении. Имя должно быть набрано латинским шрифтом. Замените имя (в правом от Name поле) на любое, например Prima. Обратите внимание, что и в верхней части инспектора и в дереве объектов название Form1 заменилось на Prima. Измените имя другим (латинским) и посмотрите за изменениями в верхней части инспектора и дерева объектов. Одновременно с изменениями в этих двух окнах происходят изменения и в коде программы. Перейдите на окно кода программы. Найдите строчку

type

TPrima = class(TForm)

Измените имя на Form1 в инспекторе. В коде программы так же произойдут изменения:

type

TForm1 = class(TForm)

Проделайте операцию по изменению имени насколько раз и убедитесь, что усвоили взаимосвязь изменений во всех четырех окнах.

Найдите в свойствах формы свойство icon (пиктограмма, иконка). Нажимая на поле справа от этого свойства, можно вызвать просмотрщик иконок и перед названием программы поместить свою иконку. Проделайте эту операцию.

Задание 3

Найдите на панели инструментов название Standard и щелкните левой кнопкой мыши на нем (Click). Появится линейка стандартных компонент Дельфи (рис. 4).

Щелкая курсором на пиктограмме компонента, а затем щелкая на форме, можно поместить компонент на форму.

Поместите на форму компонент типа label. В палитре компонентов ему соответствует пиктограмма с заглавной буквой А. При помещении курсора на эту пиктограмму появляется подсказка с названием компонента (label). Щелкните курсором на пиктограмме label, а затем щелкните курсором в каком-либо месте формы. На форме появится первый компонент с названием label1. Он окружен квадратиками, что свидетельствует о том, что он в данный момент выделен. При помещении этого объекта происходят изменения во всех трех остальных окнах. В дереве объектов появляется строчка label1, в заголовке инспектора label1 и в коде программы появляется строчка Label1: TLabel. Проследите эти изменения во всех окнах. Этот компонент служит для размещения названий. Нажмите левую кнопку мыши на помещенном компоненте и, не отпуская кнопку, передвигайте мышь (операция переместить - Drag). Выделенный компонент будет передвигаться по форме. Переместите метку в удобное место, например, к левому верхнему краю формы и отпустите кнопку (операция бросить - Drop). На инспекторе объектов найдите поле заголовка и измените название метки какой-либо характеристикой АВН, например, «Uнoм (кВ)». Обратите внимание, что имя компонента не изменилось ни в одном из окон, а изменилась только надпись на форме. Однако из такой надписи уже понятно, что где-то рядом будет записываться номинальное напряжение в киловольтах. Надпись может быть сделана на любом языке.

Найдите на инспекторе поле свойства Font (шрифт) и нажмите на значок «+» слева от надписи. Откроется дополнительный список свойств. Выберете свойство color (цвет) и нажмите на значок перевернутого треугольника. Появится список цветов шрифта. Выберете какой-либо цвет, например, красный, и выделите курсором нужный цвет, щелкая по нему левой кнопкой мыши. Цвет надписи на форме изменится на выбранный цвет. Подберите наиболее понравившийся цвет из списка.

Измените тип шрифта из свойства Font.Name на Arial. Измените шрифт на Times New Roman. Подберите подходящий шрифт. Измените размер шрифта в поле Font Size на другой. Измените цвет фона, на котором появляется надпись, в свойстве Color и подберите наиболее удобный.

Поместите на форму вторую метку и измените её название на Iном (А). Измените цвет, размер и положение второй метки. Поместите третью метку и назовите её Sном (кВ А). Проследите за изменениями во всех трех окнах при помещении нового объекта на форму.

Поместите на форму компонент Edit из стандартной палитры компонентов. Проследите изменения в трех окнах. Переместите компонент Edit1 к первой метке. Найдите свойство Text и измените надпись в этом поле с Edit1 на, например, 110. Проследите за изменениями и убедитесь, что изменился только текст компонента, но не его имя. Размещая компонент Edit1 рядом с первой меткой, мы предполагаем, что 110 в дальнейшем будет означать номинальное напряжение 110 кВ.

Поместите второй компонент Edit2 рядом со второй меткой и измените в поле Text текст с Edit2 на, например, 630. Этим мы показываем, что номинальный ток будет 630 А.

Поместите третий компонент Edit3 рядом с третьей меткой и сотрите надпись в поле Text, оставив его пустым.

Поместите на форму компонент типа Button (кнопка управления). В данном задании эта кнопка будет служить для запуска программы расчета номинальной мощности по заданным значениям напряжения и тока. Во всех трех окнах появится элемент button1. Замените заголовок кнопки надписью Пуск или другим подобным названием, не оставляющим сомнений в назначении данной кнопки. Дважды нажимая на кнопку Пуск (операция двойной щелчок - dubleclick) перейдите в окно кода. При этом в окне кода программы появится заготовка процедуры, которая будет выполняться при нажатии клавиши пуск во время работы программы.

procedure TForm1.Button1Click(Sender: TObject);

begin

end;

Обратите внимание на название процедуры. Оно состоит из имени (name) формы, на которой лежит кнопка, имени (name) кнопки и операции Click – события нажатия кнопки. Измените, например, имя (name) формы на Prima, а имя (name) кнопки на Pusk, название процедуры будет выглядеть так:

procedure TPrima.PuskClick(Sender: TObject);

begin

end;

Таким образом, в названии процедуры имя формы и кнопки меняется автоматически. В отличие от предыдущей лабораторной работы заготовка процедуры записывается в код программы автоматически и программисту остается дополнить код процедуры смысловыми операторами. Код всей программы для вычисления номинальной мощности будет выглядеть так:

 

unit Unit1;

Interface

Uses

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

 

Type

TPrima = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Pusk: TButton;

Label2: TLabel;

Edit2: TEdit;

Label3: TLabel;

Edit3: TEdit;

procedure PuskClick(Sender: TObject);

Private

{ Private declarations }

public

{ Public declarations }

end;

Var

Prima: TPrima;

Implementation

{$R *.dfm}

procedure TPrima.PuskClick(Sender: TObject);

var Unom,Inom,Snom:real;

Begin

Unom:=StrToFloat(Edit1.Text);

Inom:=StrToFloat(Edit2.Text);

Snom:=Unom*Inom;

Edit3.Text:=FloatToStr(Snom);

end;

end.

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

Введите в свою программу образец оформления процедуры или скопируйте данную процедуру. При копировании обратите внимание на расстановку операторных скобок (begin, end) во избежание появления лишних. Функция StrToFloat(Edit1.Text) преобразует строковую переменную, введенную в поле Edit1.Text, в переменную с плавающей запятой Float. Разделителем целой и десятичной части в поле Text служит запятая, а не точка. Преобразованное содержание строки поля Text присваивается переменной Unom типа real. Таким же образом осуществляется ввод номинального тока. Вывод вычисленной номинальной мощности осуществляется в этом задании в поле Edit3.Text. Поскольку это поле предназначено для строковых паременных, то переменную с плавающей запятой следует преобразовать в строку, т.е. совершить операцию, обратную вышеописанной. Для такого преобразования имеется функция FloatToStr(). Значение этой функции, у которой в параметрах указано Snom, присваивается полю Edit3.Text.

Хотя данный пример достаточно прост, он отражает операции ввода и вывода, часто применяющиеся в любых программах. Сохраните программу, нажимая команду File/Save all в созданном каталоге lab4. Убедитесь, что в этом каталоге присутствуют шесть файлов.

Запустите программу. Поскольку при написании кода Вами были допущены ошибки, то их следует найти и исправить. Запуск осуществляется или из меню Run/Run, или функциональной клавишей F9, или щелчком мыши по зеленому треугольнику на панели инструментов. После запуска программы нажмите кнопку Пуск и прочитайте ответ в поле Edit3.Text, расположенном рядом с меткой label3 «Snom (кВА)». Измените числа в полях ввода, и снова нажмите Пуск. Убедитесь, что программа считает все правильно. Завершите выполнение программы, нажав крестик завершения работы в правом верхнем углу формы. Сохраните программу, нажимая команду File/Save. Убедитесь, что в каталоге lab4 появился загрузочный модуль программы с расширением exe.

Задание 4

1. Получить у преподавателя задание на программирование какого-либо расчета характеристик АВН электрических станций и сетей.

2. Разработать интерфейс программы.

3. Написать код и отладить программу.

4. Рассчитать характеристики в соответствии с заданием.

5. Скопировать загрузочный модуль программы в каталог готовых программ.

Отчет по лабораторной работе состоит в работающей программе по заданию 4, сохраненной в каталоге lab4. Всего в каталоге должно находиться минимум семь файлов.

Контрольные вопросы

1. Чем отличаются свойства формы Caption и Name?

2. Как изменить заголовок формы?

3. Для чего нужны окна инспектора объектов, окно дерева объектов, окно кода программы, окно управления проектом программы?

4. Как поместить объект на форму?

5. Как передвинуть объект в нужное место?

6. Как изменить размер объекта?

7. Как изменить цвет, шрифт и размер надписи Label?

8. Как вставить иконку в заголовок формы?

9. Для чего нужны объекты Label, Edit и Button?

10. Как написать программный код?

11. Как ввести данные в программу из поля Edit?

12. Как вывести данные в поле Edit?

13. Как запустить программу?

14. Как завершить исполнение программы?

15. Как поместить на экран требуемые окна инспектора объектов, дерева объектов, окно кода, формы, управления проектом?

16. Какой разделитель целой и десятичной части числа с плавающей запятой следует применять при вводе числа в поле Text компонента Edit?

17. Где в теле кода программы размещается фактическая часть процедуры?

 

Лабораторная работа 5









Читайте также:

Последнее изменение этой страницы: 2016-05-28; Просмотров: 59;


lektsia.info 2017 год. Все права принадлежат их авторам! Главная