Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Объектно ориентированное программирование делфи

Информационные технологии 1

Программирование на Delphi

1. Введение

На нашем курсе мы будем изучать Delphi 7, наиболее стабильную версию языка программирования для Win32 – то есть 32-разрядных версий Windows. Появились и новые версии Delphi, но они ориентированны на технологию .NET, за которую начинающим программистам браться рановато. Тем более, что эта технология еще не применяется широко, и рынок программного обеспечения, созданного с помощью Delphi, все равно составляют программные продукты, написанные на Delphi 7, и даже более ранних версий.

Основу Delphi составляет не только сам язык, но и RAD (Rapid Application Development) – среда быстрой разработки программ . Благодаря визуальному программированию, а также достаточно большой библиотеке визуальных компонентов, Delphi позволяет создавать программы наиболее быстро и эффективно, принимая на себя основную работу, и оставляя программисту творческий процесс. Разумеется, возможность быстрого создания профессиональных приложений для Windows делает Delphi – программистов востребованными во всех отраслях человеческой деятельности.

Первая программа

Традиционно при изучении программирования принято создавать первую программу, которая выводит текст «Hello, world!». Не будем отступать от традиции и создадим программу, которая выводит этот текст тремя разными способами. Но вначале познакомимся с самой средой программирования Delphi. Предполагается, что на этот момент Delphi 7 уже установлена на вашем ПК. Если это не так, то перед дальнейшим прочтением лекции установите Delphi 7. При загрузке Delphi 7 вы видите такую картину:

Рис. 1.1. Рабочая среда Delphi 7

Познакомьтесь – это Delphi. У нее есть много окон, панелей, компонентов. С большинством из них мы познакомимся со временем, а пока нам нужно обратить внимание на 5 окон:

  1. Главное окно Delphi. Здесь находится основное меню, различные панели инструментов и палитра компонентов, состоящая из множества вкладок.
  2. Конструктор формы. Здесь мы визуально видим, как будет выглядеть форма программы, здесь мы будем создавать интерфейс, перенося на форму различные компоненты, и расставляя их таким образом, чтобы интерфейс выглядел привлекательным. Нам часто придется переключаться между конструктором форм и редактором кода, делается это клавишей F12.
  3. Редактор кода. Здесь мы видим исходный код программы, который создан самой Delphi. Тут же мы будем вводить наш собственный код.
  4. Объектный инспектор. Он предназначен для управления объектами проекта и состоит из двух вкладок – Properties (Свойства) и Events (События).
  5. Дерево объектов. Здесь мы видим, какой именно объект в данный момент является текущим. Это окно будет особенно полезно, когда на форме появится множество компонентов.

Когда открывается Delphi, она автоматически создает и отображает новый проект (программу). На рисунке вы видите проект , который содержит только одну стандартную форму . Форма – это тоже объект, который представляет собой окно программы. Чтобы программа делала что-то полезное, нам придется вносить изменения в нее. Выведем текст «Hello, world!» первым способом. Для этого в инспекторе объектов найдите свойство Caption. В данный момент текущим является объект – форма , и свойство Caption формы отвечает за надпись на системной строке программы (синяя полоса вверху любого программного окна). По умолчанию, свойство Caption содержит надпись «Form1», также называется и сама форма. Измените эту надпись на «Hello, world!» (конечно, без кавычек). Уже в процессе ввода текста вы видите, что надпись в системной строке принимает новый вид. Мы ввели этот текст одним способом.

Теперь нам нужно сохранить проект . Проект – совокупность файлов разных форматов, из которых создается программа. Об этом мы подробней поговорим в одной из следующих лекций, а пока запомните правило – каждую программу (проект), которую вы создаете, нужно сохранять в отдельной папке. Если вы все проекты станете сохранять в одну папку, то очень скоро запутаетесь. Чтобы сохранить проект, выполним следующие действия:

    Выбираем команду меню «File – Save All» (сохранить все), либо нажимаем горячие клавиши , либо нажимаем одноименную кнопку на панели инструментов

Рис. 1.2. Кнопки Save (Сохранить) и Save All (Сохранить всё) на панели инструментов

  • Затем выходит окно с предложением сохранить модуль – текстовый файл с исходным кодом, принадлежащий форме. Файл имеет расширение *.pas. Имеем в виду, что каждый проект сохраняется в отдельную папку, поэтому вначале щелкнем правой кнопкой мыши по свободному месту окна с папками, и выберем команду «Создать — Папку». Дадим папке какое-либо имя, например, «01». После создания папки открываем ее.
  • Далее в поле «Имя файла» укажем имя сохраняемого модуля. Имя может быть любым, но обязательно латинскими символами. Еще имя модуля не должно совпадать с именем формы. Обычно, имена формам и модулям стараются делать информативными, то есть, по имени можно будет догадаться, что это за файл. Поскольку это главная форма проекта, дадим ей имя «Main», и нажмем кнопку «Сохранить».
  • Затем нам будет предложено дать имя проекту в целом. Имя проекта будет совпадать с именем исполняемого программного файла. Если мы хотим, к примеру, получить файл «hello.exe», то дадим проекту имя «hello». Нажмем кнопку «Сохранить».
  • Далее нам необходимо скомпилировать программу, то есть, перевести исходный код в выполняемый exe-файл. Для этого мы можем выбрать команду меню «Run — Run», либо нажать горячую клавишу F9, либо нажать кнопку «Run» на панели инструментов (на кнопке изображение зеленой стрелки, указывающей вправо). В результате, программа была не только скомпилирована, но и запущена. Если вы посмотрите на системную строку Delphi, то увидите надпись «Delphi 7 – hello [Running]», а окна инспектора объектов и дерева объектов исчезли. Это говорит о том, что программа находится в режиме выполнения. Выполняемая программа имеет точно такой же вид, как наша главная форма, только на форме отсутствует точечная сетка, предназначенная для облегчения дизайна. Окно полученной программы содержит все стандартные кнопки Windows – программы. Щелкнув по красному крестику в правой верхней части окна, закройте программу (но не Delphi), и вы увидите прежнюю форму.

    Обратите внимание, что свойства в Объектном Инспекторе принадлежат выделенному в данный момент компоненту. Выделяются компоненты простым щелчком мыши. Имейте в виду, что щелкать нужно один раз. Двойной щелчок создаст обработчик события – процедуру. Если вы ошибочно создадите таким образом процедуру, то просто сохраните проект, ничего в нее не вписывая – при сохранении последние пустые процедуры автоматически удаляются. Удалять их вручную не рекомендуется.

    Попробуем второй способ. Обратите внимание на Палитру компонентов . Текущей является вкладка Standard , и на ней находится множество значков – компонентов. Когда вы подводите указатель мыши к какому-либо компоненту, через некоторое время выскакивает подсказка с именем компонента. Нам нужен компонент Label , который представлен на вкладке в виде кнопки с изображением жирной буквы «А». Щелкните по этой кнопке, затем щелкните по свободному месту на форме, чтобы вставить компонент. Лучше, если вы расположите его ближе к левому верхнему краю формы. Компонент Label появился на форме. Этот компонент представляет собой обычную надпись. Сейчас он выделен, и содержит надпись по умолчанию, — «Label1». Теперь объектный инспектор показывает свойства этого компонента, а не формы. Label также имеет свойство Caption , которое вы можете изменить в Инспекторе объектов. Найдите это свойство, и вместо «Label1» впишите «Hello, world!». Текст в компоненте Label изменился. Если вам не нравится место, в котором оказался компонент, вы можете перетащить его мышью на другое место. Кроме того, точное местоположение компонента вы можете задать, если выделите его, и будете нажимать клавиши перемещения курсора, удерживая при этом клавишу . Теперь попробуйте еще одно свойство компонента Label – свойство Font (шрифт). Найдите это свойство в инспекторе объектов, и выделите его. Справа появится кнопочка с тремя точками, нажмите ее. Откроется стандартное окно выбора шрифта. Здесь вы можете выбрать имя шрифта, его размеры, начертание (например, жирный курсив) и цвет текста. Поэкспериментируйте с размером компонента, его положением и шрифтом. Почти все компоненты, с которыми нам придется иметь дело, имеют эти свойства, так что в дальнейшем вам будет легче осваивать новый компонент.

    Снова сохраните проект и нажмите кнопку Run (или ). Убедитесь, что надпись появилась на форме, после чего закройте программу (но не Delphi) и вернитесь к форме.

    Попробуем третий, немного более сложный способ. Пока что мы создавали программу, не написав ни единой строки кода. Мы занимались только дизайном, все остальные трудности Delphi взяла на себя. Теперь попробуем вывести это же сообщение, как только пользователь нажмет кнопку на форме.

    Для начала нужно установить на форму кнопку. Этот компонент также находится на вкладке Standard палитры компонентов, и выглядит как кнопочка с надписью «ОК». При наведении на него указателя мыши выскакивает подсказка «Button». Щелкнув по компоненту, щелкните затем по тому месту на форме, где вы хотели бы видеть эту кнопку. Изменим надпись на кнопке. Убедитесь, что кнопка выделена, и найдите в инспекторе объектов ее свойство Caption. Замените надпись «Button1» на «Нажми меня!». Если надпись не умещается на кнопке, вы можете растянуть кнопку мышью, или использовать для этого клавиши управления курсором с нажатой кнопкой .

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

    Читать еще:  Bash язык программирования

    Статьи о Delphi

    Объектно-ориентированное программирование

    Большим шагом вперёд в развитии технологий программирования было появление объектно-ориентированного программирования. Здесь программный код перестал быть «плоским» и программист оперирует не просто процедурами и функциями, а целыми объектами.

    Объект — совокупность свойств, методов, событий. Что означает «совокупность»? Это значит, что объект как бы состоит из методов, свойств и событий, и они обеспечивают его полноценную работу. Представим себе кнопку. Она обладает:

    • свойствами (цвет, текст на кнопке, шрифт текста и т. д.);
    • событиями (события пользовательского ввода, например, нажатие на кнопку);
    • методами (обеспечивающими работу кнопки, например, метод прорисовки текста, прорисовки фокуса и т. д.).

    Если все это объединить, то получается автономный объект, который может работать в различных условиях. В этом случае достаточно только установить кнопку на форме, и она уже готова к применению. Как же оформляются свойства, методы и события объекта в программах?

    Свойства — это переменные, которые влияют на состояние объекта. Например, ширина и высота объекта.

    Методы — это те же процедуры и функции, т. е. это то, что объект умеет делать. Например, объект может иметь процедуру для вывода какого-то текста на экран. Эта процедура и есть метод, который принадлежит объекту.

    События — это те же процедуры и функции, которые вызываются при наступлении определенного события. Например, если изменилось какое-то свойство объекта, может быть сгенерировано соответствующее событие и вызвана процедура, которая инициализирует реакцию приложения на это событие.

    Изначально в объекте может и не быть процедуры для какого-то события, а если и есть, то она действует как обработчик по умолчанию. В среде Delphi в качестве обработчиков вы будете назначать собственные процедуры только в строго определенном формате (в зависимости от события). Формат процедуры заранее определен, и в разных случаях объект должен будет передавать вам различные параметры. Ваши процедуры должны будут соответствовать предопределенному формату, чтобы не было разногласий с объектом, к которому они будут относиться.

    Рассмотрим пример. Пусть пользователь нажал на кнопку. В этом случае она, как объект, генерирует соответствующее событие. В результате этого может быть вызвана процедура-обработчик, которую вы назначили кнопке при возникновении данного события. В этом случае не требуется никакая дополнительная информация, поэтому объект не будет пересылать вам никаких параметров, кроме указателя на самого себя. Однако, если нужно обработать событие, связанное с перемещением курсора мыши, дело будет обстоять несколько иначе. В этом случае объект будет генерировать событие и автоматически передавать вам новые координаты X и Y курсора, поэтому процедура должна быть объявлена с соответствующими параметрами, чтобы можно было принять их от объекта.

    Теперь рассмотрим работу свойств, методов и событий как единого целого. И снова для примера возьмем объект — кнопку. Такой объект должен обладать следующим минимальным набором.

    1. Свойства:

    • левая позиция Left;
    • верхняя позиция Top;
    • ширина Width;
    • высота Height;
    • заголовок Caption;

    2. Методы:

    • создать кнопку;
    • нарисовать кнопку;
    • уничтожить кнопку.

    3. События:

    • кнопка нажата;
    • кнопка отпущена;
    • заголовок кнопки изменен.

    Объект работает как единое целое. Например, вы изменили заголовок кнопки. Объект генерирует событие «заголовок кнопки изменен». По этому событию вызывается метод «нарисовать кнопку». Этот метод рисует кнопку в позиции, указанной в свойствах объекта, и выводит на кнопке новый текст, указанный в свойстве «заголовок».

    У каждого объекта обязательно присутствуют два метода: «создать объект» и «уничтожить объект». Во время создания объекта происходит выделение памяти дляхранения необходимых свойств, и заполняются значения по умолчанию. Во время уничтожения объекта происходит освобождение выделенной памяти. Метод для создания объекта называется конструктором (constructor). Метод для уничтожения объекта называется деструктором (destructor). Сам процесс создания объекта называется инициализацией.

    Теперь рассмотрим использования нашей кнопки. Он выглядит следующим образом:

    1. Создание кнопки с помощью вызова конструктора;
    2. Изменение необходимых свойств;
    3. Все. Наша кнопка готова к работе.

    Объект — сложный тип данных. Это значит, что вы можете объявлять переменные типа «объект» (точно так же, как объявлялись переменные типа «число» или «строка») и обращаться к объекту через эту переменную. На языке программирования это будет выглядеть немного сложнее:

    1. Объявить переменную типа «кнопка».
    2. В эту переменную проинициализировать объект.
    3. Изменить нужные свойства.
    4. Можно использовать объект.

    Вот тут нужно собрать все, что вы поняли об объектах, в одно целое. Итак, мы можем объявлять переменные типа «объект». Давайте объявим переменную-объект типа Кнопка. Теперь можно создать кнопку, для чего есть конструктор (метод для создания объекта), который выделяет свободную память под этот объект. Процесс инициализации объекта-кнопки выглядит так: переменной Объект нужно присвоить результат работы конструктора объекта Кнопка. Конструктор выделит необходимую объекту память и присвоит свойствам значения по умолчанию. Результат этого действия будет присвоен переменной Объект. Эта переменная будет указывать на область памяти в которой находится созданная кнопка, и ее свойства. После всех этих действий мы можем получить доступ к созданному объекту через переменную Объект.

    Давайте напишем прототип небольшой программы, которая пояснит весь процесс создания объекта.

    Начало программы

    Переменные:
    Объект1: Кнопка;
    Начало кода
    Объект1:= Кнопка.Создать объект;
    Объект1.Заголовок:=’Привет’;
    Объект1.Уничтожить объект.
    Конец кода;

    Доступ к свойствам и методам объектов осуществляется при помощи записи

    ИмяОбъекта.Свойство
    или
    ИмяОбъекта.Метод

    т.е. в записи имя объекта и его свойства или методы объекта разделяются точкой.

    Создание объекта перед использованием — обязательно. Поэтому, если вы попробуете использовать код, приведенный ниже, то у вас произойдет ошибка.

    Неправильное использование объекта

    Начало программы
    Переменные:
    Объект1: Кнопка;
    Начало кода
    Объект1.Заголовок:=’Привет’;
    Конец кода;

    Здесь мы пытаемся изменить заголовок без создания и уничтожения объекта, а это ошибка! В данном случае переменная Объект1 ещё ничего не хранит и ни на что не указывает. Её необходимо сначала проинициализировать и создать для нее объект-кнопку или присвоить адрес расположения в памяти уже существующей кнопки.

    Без инициализации можно использовать только простые переменные, такие как число или строка. Тут Delphi выделяет под них память автоматически, потому что размер этих переменных фиксированный и Delphi уже на этапе компиляции знает, сколько памяти нужно отвести под переменную. Сложные переменные типа объектов обязательно должны инициализироваться. Это связано еще и с размещением данных. Простые переменные хранятся в стеке (сегмент стека), а сложные переменные типа объектов хранятся в памяти компьютера. При старте программы сегмент стека инициализируется автоматически. Поэтому переменные могут спокойно размещаться в уже подготовленной памяти сегмента стека. Когда вы создаете объект, он создается в нераспределенной памяти компьютера. Так как память еще не распределена, ее нужно сначала подготовить (выделить нужный объем под создаваемый объект). После того как объект не нужен, эту память необходимо освободить, вызвав деструктор объекта. Простые переменные освобождать не надо, потому что стек очищается автоматически.

    Объект — очень удобная вещь. Он работает как шаблон, на основе которого создаются переменные типа объектов. Например:

    Объект в виде шаблона

    Начало программы
    Переменные:
    Объект1 — Кнопка;
    Объект2 — Кнопка;
    Начало кода
    Объект1:= Кнопка.Создать объект;
    Объект2:= Кнопка.Создать объект;
    Объект1.Заголовок:=’Привет’;
    Объект2.Заголовок:=’Пока’;
    Объект1.Уничтожить объект;
    Объект2.Уничтожить объект;
    Конец кода;

    Инициализацию объекта еще очень часто называют созданием экземпляра объекта. И это тоже правильно. Когда вы вызываете конструктор, в памяти создается новый экземпляр объекта. В данном примере можно сказать, что наши переменные объект1 и Объект2 указывают на собственные экземпляры объекта Кнопка, т. е. в памяти получается две независимые копии объекта (кнопки). Любую из них можно независимо менять и она не будет влиять на другую переменную.

    Теперь более подробно о самом примере. В нем объявляются две переменных типа «кнопка». Потом производятся их инициализация и изменение заголовка на нужный. В результате мы получили из одного объекта две кнопки с разными заголовками. Обе кнопки работают автономно и не мешают друг другу, потому что им выделена разная память. Таким образом создаются новые объекты на основе шаблона и потом раздельно используются, изменяя разные свойства шаблона и используя его методы.

    Начала объектно-ориентированного программирования в Delphi (уроки 1–3)

    Урок 1: Объекты: свойства и методы. Проекты и приложения

    Цель: Познакомить учащихся с основной структурной единицей ООП, показать области применения ООП, дать понятие проекта и приложения.

    1. Теоретический материал.

    Объектно-ориентрованное программирование широко используется для создания различных прикладных программ, имеющих графический интерфейс. В частности, известные всем приложения MS Office были созданы именно с помощью программно-ориентированных языков, которые позволяют как в конструкторе из некоторого набора элементов (программных объектов) собирать рабочее окно любого приложения.

    Основной единицей в ООП является программный объект, который соединяет в себе как описывающие его данные (свойства), так и средства обработки этих данных (методы).

    Например, рассмотрим рабочее окно приложения MS Word.

    В данном случае объектами будут как кнопки панели инструментов, так и элементы линейки и сама рабочая область, в которой набирается текст. Свойства элементов описывают их внешний вид, размеры, а также место положения на экране. Методы обозначают какие действия может производить тот или иной объект. Так кнопка отправляет открытый на экране документ на печать, другая кнопка будет выполнять другое действие. Кроме того, каждый объект реагирует на те или иные события, т.е. те действия, которые пользователь должен совершить, чтобы кнопка (или другой объект) начал выполнять свою задачу. Например, событием, вызывающим метод любой кнопки в MS Word является щелчок по левой кнопке мыши. Только после этого любая кнопка начинает работать.

    Программные объекты обладают свойствами, могут использовать методы и реагируют на события. Классы объектов являются шаблонами, определяющими наборы свойств, методов и событий, по которым создаются объекты. Например, в данном случае мы имеем несколько классов объектов: кнопки , , и т.д., которые реагируют на щелчок левой кнопки мыши и воспроизводят различные методы; текстовые поля с выпадающими списками: , , и т.п., которые имеют свой набор методов, флажки: , событием для которых будет установление галочки в текстовое поле; и другие классы объектов.

    Объект, созданный по шаблону класса, является экземпляром класса и наследует весь набор свойств, методов и событий этого класса. Каждый элемент класса имеет уникальное имя для данного класса (например, сохранить, печать, правописание …), различные экземпляры класса обладают одинаковым набором свойств, однако значения свойств у них могут отличаться (внешний вид кнопок и размеры одинаковы, но картинки на них разные).

    2. Показать учащимся внешний вид главного рабочего окна системы ООП Delphi (с помощью мультимедиапроектора), выдать распечатанные заранее заготовки с изображением главного окна. Показать примеры проектов созданных в среде ООП Delphi (простой проект “переменные”, тест, обучающую программу и т.д.).

    3. Проекты и приложения.

    С одной стороны, система ООП визуального программирования является системой программирования, так как позволяет кодировать алгоритмы на данном языке. С другой стороны, система ООП является средой проектирования, так как позволяет осуществлять визуальное проектирование графического интерфейса.

    Результатом процессов программирования и проектирования является проект, который объединяет в себе программный код и графический интерфейс.

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

    Проект может быть запущен только из системы ООП.

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

    Для перевода программы на машинный язык служат программы-переводчики (трансляторы), для каждого языка программирования свой транслятор.

    Трансляторы языков программирования могут быть двух типов: интерпретаторы и компиляторы.

    Интерпретатор – программа, которая обеспечивает последовательный “перевод” инструкций программы с одновременным их выполнением, причем это действие выполняется при каждом запуске программы на выполнение и только в среде программирования. Удобен в использовании на этапе отладки программы.

    Компилятор переводит весь текст программы на машинный язык и сохраняет его в исполнимом файле (.ехе), образуя приложение. Затем этот исполнимый файл можно запускать на выполнение многократно прямо в операционной системе (даже в отсутствие среды программирования на ПК).

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

    4. Д/з: п.4.3. вопросы на стр. 200.

    Главное окно Delphi

    Цель: дать представление учащимся о простейших компонентах Delphi, их свойствах, правилах создания и сохранения проектов и приложений.

    1. Ответить на вопросы стр.200.

      В чем состоит различие между интерпретаторами и компиляторами?
    1. В чем состоит различие между проектом и приложением?

    2. Теоретический материал.

    Среда Delphi – это интегрированная среда для разработки и отладки приложений, в основе которой лежит язык Object Pascal.

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

    Project1.dpr – сам проект;

    Unit1.pas – программная часть (файл кода);

    *.exe – исполняемый модуль.

    Можно сохранять файлы по отдельности с помощью команд Save as (Unit1)

    Save Project. Но для того, чтобы сохранить все изменения, выполненные в проекте, необходимо использовать команды File – Save all.

    Этапы разработки проектов:

  • Создание графического интерфейса проекта – установка на форму необходимых компонентов.
  • Установка значений свойств объектов графического интерфейса с помощью окна ИНСПЕКТОР ОБЪЕКТОВ.
  • Вызвать нужное событие для определенного компонента.
  • Прописать и отредактировать программный код, вызвав заготовку обработчика события для компонента двойным щелчком левой кнопки мыши по этому компоненту.
  • Запустить программу на выполнение для выявления ошибок (аварийное завершение программы Run – Program reset).
  • Сохранить проект с использованием команд File – Save all.
  • Для создания приложения требуется после создания проекта откомпилировать его, воспользовавшись командой Project – Compile all progect.

    Для создания нового приложения следует выполнить команду File – New – Application.

    Компоненты и их свойства.

    Вкладка Standart:

    1. TLabel — метка (текст на форме) используется для вывода информации на форму (подсказки, надписи, результаты вычислений);
    2. TEdit – поле ввода информации, используется для вода данных в программу с клавиатуры;
    3. TButton – кнопка, вызывающая выполнение какого-либо действия.

    Свойства:

    1. Caption – текст внутри компонента;
    2. Text — текст внутри компонента;
    3. Name – имя компонента, по которому к нему можно обращаться в программе;
    4. Left – расстояние от левой границы формы до компонента;
    5. Top – расстояние от верхней границы формы до компонента;
    6. Width – ширина компонента;
    7. Height – высота компонента;
    8. Color – цвет компонента;
    9. Font – шрифт, его характеристики;
    10. Visible – видимость компонента;
    11. Enabled – активность (доступность) компонента.

    Свойства, касающиеся расположения компонента на форме и его размеров, можно установить с помощью окна Инспектор объектов или просто поставить компонент в нужное место на форме с помощью мыши.

    Пример 1: Создать проект, который после ввода на форму имени пользователя здоровается и меняет цвет формы.

    3. Создадим графический интерфейс проекта.

    Установить свойства объектов в соответствии с таблицей:

    DelphiComponent.ru — бесплатно видеоуроки по Delphi, статьи, исходники

    Объектно-Приентированное Программирование в Delphi (ООП): основы

    Класс

    Классический язык Pascal позволяет программисту определять свои собственные сложные типы данных — записи (records). Язык Delphi, поддерживая концепцию объектно-ориентированного программирования, дает возможность определять классы. Класс — это сложная структура, включающая, помимо описания данных, описание процедур и функций, которые могут быть выполнены над представителем класса — объектом.

    Вот пример объявления простого класса:

    Данные класса называются полями, процедуры и функции — методами.

    В приведенном примере

    • TPerson — это имя класса,
    • fname и faddress -имена полей,
    • show — имя метода.

    Примечание: Согласно принятому в Delphi соглашению, имена полей должны начинаться с буквы f (от слова field — поле).

    Описание класса помещают в программе в раздел описания типов (type)

    Объект

    Объекты как представители класса объявляются в программе в разделе var, например:

    Выделение памяти осуществляется при помощи специального метода класса — конструктора, которому обычно присваивают имя Create (создать). Для того чтобы подчеркнуть особую роль и поведение конструктора, в описании класса вместо слова procedure используется слово constructor.

    Ниже приведено описание класса TPerson, в состав которого введен конструктор:

    Выделение памяти для данных объекта происходит путем присваивания значения результата применения метода-конструктора к типу (классу) объекта.

    Например, после выполнения инструкции

    выделяется необходимая память для данных объекта professor.

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

    Ниже приведен пример реализации конструктора для объекта TPerson:

    Реализация конструктора несколько необычна. Во-первых, в теле конструктора нет привычных инструкций New, обеспечивающих выделение динамической памяти (всю необходимую работу по выделению памяти выполняет компилятор). Во-вторых, формально конструктор не возвращает значения, хотя в программе обращение к конструктору осуществляется как к методу функции.

    После объявления и инициализации объект можно использовать, например, установить значение поля объекта. Доступ к полю объекта осуществляется указанием имени объекта и имени поля, которые отделяются друг от друга точкой. Хотя объект является ссылкой, правило доступа к данным с помощью ссылки, согласно которому после имени переменной, являющейся ссылкой, надо ставить значок Л, на объекты не распространяется.

    Например, для доступа к полю fname объекта professor вместо

    Очевидно, что такой способ доступа к полям объекта более естественен.

    Если в программе какой-либо объект больше не используется, то можно освободить память, занимаемую полями данного объекта. Для выполнения этого действия используют метод-деструктор Free, Например, для того, чтобы освободить память, занимаемую полями объекта professor, достаточно записать professor . Free;

    Метод

    Например, инструкция professor . Show;

    вызывает применение метода Show к объекту professor. Фактически инструкция применения метода к объекту — это специфический способ записи инструкции вызова процедуры.

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

    Ниже приведен пример определения метода show класса TPerson:

    // метод Show класса TPerson

    Инкапсуляция и свойства объекта

    В описании класса перед именем свойства записывают слово property (свойство). После имени свойства указывается его тип, затем — имена методов, обеспечивающих доступ к значению свойства. После слова read указывается имя метода, обеспечивающего чтение свойства, после слова write — имя метода, отвечающего за запись свойства.

    Ниже приведен пример описания класса TPerson, содержащего два свойства: Name И Address.

    В программе для установки значения свойства не нужно записывать инструкцию применения к объекту метода установки значения свойства, а надо записать обычную инструкцию присваивания значения свойству. Например, чтобы присвоить значение свойству Address объекта student, достаточно записать

    Компилятор перетранслирует приведенную инструкцию присваивания значения свойству в инструкцию вызова метода

    student . SetAddress(‘С.Петербург, ул.Садовая 21 , кв.ЗМ;

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

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

    Оформление данных объекта как свойства позволяет ограничить доступ к полям, хранящим значения свойств объекта: например, можно разрешить только чтение. Для того чтобы инструкции программы не могли изменить значение свойства, в описании свойства надо указать лишь имя метода чтения. Попытка присвоить значение свойству, предназначенному только для чтения, вызывает ошибку времени компиляции. В приведенном выше описании класса ТРеrson свойство кате доступно только для чтения, а свойство Address — для чтения и записи.

    Установить значение свойства, защищенного от записи, можно во время инициализации объекта. Ниже приведены методы класса ТРегзоп, обеспечивающие создание объекта класса ТРеrson и доступ к его свойствам.

    ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ НА СРЕДЕ DELPHI;

    1. Основные понятия.Технология работы в среде Delphi бази­руется на идеях объектно-ориентированного и визуального про­граммирования. Идея объектно-ориентированного программиро­вания состоит в инкапсуляции (объединении) данных и средств их обработки (методов) в тип, который называется классом. Кон­кретной переменной определенного класса и есть объект. Приме­рами объектов могут быть элементы управления в окне: кнопки, списки, текстовые поля и т.п. Среда визуального программирова­ния Delphi — это графическая автоматизированная оболочка над объектно-ориентированной версией языка Паскаль (Object Pascal). Если в языке Паскаль структурные единицы — это данные и ко­манды, то здесь такой структурной единицей является визуаль­ный объект, который называется компонентом. Автоматизация программирования достигается благодаря возможности перено­сить компонент на форму (в программу) из палитры компонентов и изменять его свойства, не внося вручную изменений в про­граммный код.

    Формой называют компонент, который владеет свойствами окна Windows и предназначен для расположения на нём других компонентов. Компоненты на форме могут быть видимыми и не­видимыми. Первые служат для организации диалога с пользова­телем. Это различные кнопки, списки, текстовые поля, изобра­жения и т.п. Они отображаются на экране во время выполнения программы. Невидимые компоненты предназначены, в частности, для доступа к системным ресурсам компьютера.

    Проект — это совокупность файлов, из которых складывается Delphi-шрограмма.

    2. Инструменты среды Delphi. Основными инструментами яв­ляются:

    2) панель инструментов;

    3) палитра компонентов (Component Palette);

    4) инспектор объектов (Object Inspector);

    6) редактор кода (Code Editor).

    Эти инструменты становятся доступными после запуска про­граммы Delphi: три находятся в главном окне (верхняя часть эк­рана, рис. 1), а остальные — в отдельных окнах.

    3. Главное меню и панель инструментов.Главное меню состоит из таких элементов: Pile, Edit, Search, View, Project, Run, Component, Database, Tools, Help.

    Меню File содержит стандартные команды для работы с фай­лами проекта. С помощью этих команд можно создать новый про­ект (New Application), новую форму или модуль (New Form и New Unit), открыть или закрыть файл проекта (Open и Close), закрыть все открытые файлы (Close All), сохранить файл, проект или все сразу (Save, Save As, Save Project As, Save All).

    С помощью команд меню Edit можно выравнивать компоненты относительно сетки и между собой (Align to Grid, Align), задавать порядок отображения компонентов, которые перекрываются (Bring to Front, Send to Back), изменять размер избранного ком­понента (Size), масштабировать визуальные компоненты (Scale) и т.п.

    Меню Search содержит стандартные команды поиска и замены фрагмента текста (Find, Replace, Search Again, Incremental Search) и прочие. В меню View находятся команды визуализации элементов среды. Меню Project содержит команды компиляции (Compile, Build All) и проверки синтаксиса программы (Syntax Check). Меню Run содержит команды отладки и запуска программы. Меню Component используют для создания и инсталляции новых компонентов. Меню Database содержит команды вызова инструментов базы данных. В меню Tools находятся команды для настройки параметров среды.

    Панель инструментов служит для дублирования команд меню с помощью кнопок.

    4. Палитра компонентов.Палитра компонентов расположена в главном окне и имеет вид многостраничного блокнота. Каждая страница имеет свой набор компонентов. Чтобы поместить компонент в центре окна формы, дважды щелкают на его пикто­грамме. Если нужно разместить компонент где либо на форме, щелкают один раз на его пиктограмме и один раз в нужном месте формы. Для того, чтобы вставить один и тот же компонент не­сколько раз, нужно нажать клавишу Shift и щелкнуть на его пиктограмме — теперь можно щелкать в окне формы. Чтобы отка­заться от этого режима, надо нажать на кнопку палитры компо­нентов с изображением стрелки. Выбранный компонент можно перемещать на форме, а также изменять его размеры, перетягивая маркеры.

    5. Инспектор объектов.С помощью инспектора объектов мож­но задавать начальные значения свойств объекта и реакцию на стандартные события. Окно инспектора объектов содержит список компонентов текущей формы, а также две закладки: свойства (Properties) и события (Events). Чтобы активизировать окно инс­пектора, объектов, нажимают клавишу F11.Рассмотрим это окно (рис. 2). Закладка свойств состоит из двух столбцов: левый соде­ржит названия свойств компонентов, а правый — их значения. Свойства могут быть простыми или комплексными (составными). Комплексные свойства состоят из набора других свойств. Такие свойства в инспекторе объектов обозначены символом « + », на­пример, +Font.

    Закладка событий также имеет два столбца. В левом отобра­жаются имена стандартных событий, на которые объект может реагировать, а в правом — имена методов (процедур), реализую­щих реакцию на событие. Каждому стандартному событию отве­чает название метода, которое появляется после двойного щелкания мыши в правом столбце. В этот момент в окно текста про­граммы добавляется шаблон базового кода (процедуры) для соот­ветствующего метода. Шаблон необходимо заполнить соответст­вующими командами. Для ввода значений свойств числового и текстового типов (Width, Name и т.п.) используют стандартное поле ввода. Значе­ние свойств перечислимого типа (Align, Cursor и т.п.) описывают­ся комбинированным списком, из которого выбирают необходи­мое. Некоторые комплексные свойства (Font, Picture, Glyph и т.п.) используют диалоговые окна, набор управляющих элементов которых зависит от конкретного свойства.

    6. Окно формы.Форма — это окно Windows, которое создаётся в одном из возможных для окон стилей. Всё внутреннее простран­ство формы называется рабочей областью. На рабочую область нанесена сетка выравнивания для удобного расположения на ней компонентов. Для выполнения групповых операций несколько компонентов можно объединять. Для этого необходимо нажать на левую клавишу мыши и перемещением указателя охватить на экране все нужные компоненты. В группу приобщаются компо­ненты, которые хотя бы частично попадают в охваченную область. Можно также приобщить/изъять отдельный, элемент. Для этого необходимо нажать клавишу Shift и, не отпуская ее, щелк­нуть мышью на нужном компоненте на форме. Удаление выде­ленных компонентов или группы выполняют клавишей Delete. Перемещение выделенного компонента в границах формы осуще­ствляют мышью. Над компонентами и их группами можно вы­полнять операции вырезания, копирование в буфер обмена и вставки из буфера.

    Выравнивать компоненты можно как относительно окна формы, так и относительно друг друга. Для этого используют команду Edit=> Align главного меню или палитру выравнивания (команда View=> Alignment Palette главного меню). Другая возможность — можно не­посредственно задать значения свойствам Left и Тор компонентов в окне инспектора объектов. Компоненты в группе выравниваются от­носительно компонента, попавшего в группу первым.

    7. Структура проекта.Проектом называют совокупность фай­лов, из которых Delphi создает готовую для выполнения программу. В состав каждого проекта обязательно входят следующие фай­лы:

    • файл проекта *.dpr. Это небольшой файл с программным кодом на языке Object Pascal, в котором записаны ссылки на все файлы проекта. Именно этот файл инициализирует (стартует) программу;

    • файлы описания всех форм, которые входят в проект: файл модуля *.pas и файл формы *.dfm. Каждой форме проекта соответствует свой модуль;

    • файл ресурсов программы *.res. В нем описаны ресурсы, не входящие в форму, например, пиктограмма програм­мы;

    • файл параметров проекта *.dof;

    • файлы параметров среды *.drf, *.dsk, *.dsm. Эти файлы создаются лишь после компиляции проекта.

    Для сохранения Delphi-проекта необходимо задать имена моду­лей (автоматически предлагаются имена Unitl.pas, Unit2.pas, . ) и имя проекта (Projectl.dpr). Эти имена можно заменить на соб­ственные. Для перемещения Delphi-проекта на другой компьютер необходимо с собой брать файлы таких типов: *.dpr, *.dfm, *.pas, *.res. Другие файлы создаются автоматически.

    8. Редактор кода.Редактор кода находится в отдельном окне. Это окно организовано как многостраничный блокнот открытых на данное время файлов. В момент открытия нового проекта в модуль Unitl.pas, который соответствует форме Forml, редактор автоматически заносит программный код описания этой формы. Во время добавления новых компонентов в окно формы в про­грамму автоматически заносятся коды с описаниями параметров этих компонентов (высота, ширина, расположение, стиль и т.п.). Добавление определенного объекта или примененияе к нему мето­да ведет к появлению заготовки базового кода соответствующей процедуры в окне редактора. Заготовка (шаблон) состоит из заго­ловка процедуры и ключевых слов beginи end.Заготовку запол­няет пользователь. Заканчивается модуль собственной командой end.Итак, модуль Unitl имеет такой общий вид:

    unitUnitl;

    interface

    uses

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

    type

    procedure ButtonlClick(Sender: TObject);

    private

    public

    end;

    var

    Forml: Tforml; procedureInformation;

    Ссылка на основную публикацию
    Adblock
    detector