Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ПЯВУ.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
933.33 Кб
Скачать

Характеристики языков программирования

  • Фортран [FORTRAN - FORmula TRANslation] - Язык программирования высокого уровня, разработанный фирмой IBM в 1956 г. для описания алгоритмов решения вычислительных задач. Относится к категории процедурно-ориентированных языков. Наиболее распространенными версиями этого языка являются Фортран IV, Фортран 77 и Фортран 90. Используется на всех классах ЭВМ. Последняя его версия также применяется на ЭВМ с параллельной архитектурой.

  • Алгол [ALGOL - ALGOrithmic Language] - Язык программирования высокого уровня, ориентированный на описание алгоритмов решения вычислительных задач. Был создан в 1958 г. специалистами западно-европейских стран для научных исследований. Версия этого языка Алгол-60 была принята Международной конференцией в Париже (1960 г.) и широко использовалась на ЭВМ 2-го поколения. Версия Алгол-68, разработанная группой специалистов Международной федерации по обработке информации ( ИФИП) в 1968 г., получила статус международного универсального языка программирования, ориентированного на решение не только вычислительных, но и информационных задач. Хотя в настоящее время Алгол практически не используется, он послужил основой или оказал существенное влияние на разработку более современных языков, например, Ада , Паскаль и др.

  • Ада [Ada] - Язык программирования высокого уровня, ориентированный на применение в системах реального времени и предназначенный для автоматизации задач управления процессами и/или устройствами, например, в бортовых (корабельных, авиационных и др.) ЭВМ. Разработан по инициативе министерства обороны США в 1980-х гг. Назван в честь английского математика Ады Августы Байрон ( Лавлейс), жившей в 1815-1851 гг.

  • Бейсик [BASIC - Beginner’s All-purpose Symbolic Instruction Code] - Язык программирования высокого уровня , разработанный в 1963 - 1964 гг. в Дартмутском колледже Томасом Куртом и Джоном Кемени . Первоначально предназначался для обучения программированию. Отличается простотой, легко усваивается начинающими программистами благодаря наличию упрощенных конструкций языка Фортран и встроенных математических функций, алгоритмов и операторов. Существует множество различных версий Бейсика, которые не полностью совместимы друг с другом. Некоторые реализации Бейсика включают средства обработки данных и наборов данных. Большинство версий Бейсика используют интерпретатор, который преобразует его компоненты в машинный код и позволяет запускать программы без промежуточной трансляции. Некоторые более совершенные версии Бейсика позволяют использовать для этой цели трансляторы. На IBM PC широко используются Quick Basic фирмы Microsoft, Turbo Basic фирмы Borland и Power Basic (усовершенствованная версия Turbo Basic, распространяемая фирмой Spectra Publishing ). В начале 1999 г. фирма Microsoft выпустила версию языка Visual Basic 6.0 (VB 6.0), предназначенного для создания многокомпонентных программных приложений для систем уровня предприятий. Подробнее о нем см. [429].

  • Кобол [COBOL - COmmon Buisiness-Oriented Language] - Язык программирования высокого уровня, разработанный в конце 1950-х гг. ассоциацией КАДАСИЛ для решения коммерческих и экономических задач. Отличается развитыми средствами работы с файлами. Поскольку команды программ, написанных на этом языке, активно используют обычную английскую лексику и синтаксис, Кобол рассматривается как один из самых простых языков программирования. В настоящее время используется для решения экономических, информационных и других задач.

  • Лисп [LISP - LISt Processing] - Алгоритмический язык, разработанный в 1960 г. Дж. Маккарти и предназначенный для манипулирования перечнем элементов данных. Используется преимущественно в университетских лабораториях США для решения задач, связанных с искусственным интеллектом. В Европе для работ по искусственному интеллекту предпочитают использовать Пролог .

  • ЛОГО [LOGO от греч. logos - слово ] - Язык программирования высокого уровня, разработан в Массачусетском технологическом институте в ориентировочно 1970 г. для целей обучения математическим понятиям. Используется также в школах и пользователями ПЭВМ при написании программ для создания чертежей на экране монитора и управления перьевым графопостроителем.

  • Паскаль [PASCAL - акроним с французского - Program Applique a la Selection et la Compilation Automatique de la Litterature] - Процедурно-ориентированный язык программирования высокого уровня, разработанный в конце 1960-х гг. Никлаусом Виртом, первоначально для обучения программированию в университетах. Назван в честь французского математика XVII века Блеза Паскаля. В своей начальной версии Паскаль имел довольно ограниченные возможности, поскольку предназначался для учебных целей, однако последующие его доработки позволили сделать его хорошим универсальным языком, широко используемым в том числе для написания больших и сложных программ. Существует ряд версий языка (например, ETH Pascal, USD Pascal, Turbo Pascal ) и систем программирования на этом языке для разных типов ЭВМ. Для IBM PC наиболее популярной является система Turbo Pascal фирмы Borland (США). Подробнее о языках Пскаль и их развитии см. [653].

  • Пролог [PROLOG - PROgramming in LOGic] - Язык программирования высокого уровня декларативного типа (см. выше декларативное программирование), предназначенный для разработки систем и программ искусственного интеллекта. Относится к категории языков пятого поколения. Был разработан в 1971 г. в университете г. Марсель (Франция), относится к числу широко используемых и постоянно развиваемых языков. Последняя его версия Prolog 6.0. Подробнее см. [561].

  • Си [C ] - Многоцелевой язык программирования высокого уровня, разработанный Денисом Ритчи в начале 1970-х гг. на базе языка BCPL. Используется на миниЭВМ и ПЭВМ. Является базовым языком операционной системы Unix , однако применяется и вне этой системы, для написания быстродействующих и эффективных программных продуктов, включая и операционные системы. Для IBM PC имеется ряд популярных версий языка Си, в том числе - Turbo C (фирмы Borland), Microsoft C и Quick C ( фирмы Microsoft ), а также Zortech C(фирмы Symantec ). Многие из указанных версий обеспечивают также работу с Си и Си++ (см. ниже).

  • Си++ [C++] - Язык программирования высокого уровня, созданный Бьярном Страустрапом на базе языка Си. Является его расширенной версией, реализующей принципы объектно-ориентированного программирования. Используется для создания сложных программ. Для IBM PC наиболее популярной является система Turbo C++ фирмы Borland (США).

  • C# (C Sharp) – “ Си Шарп ”: объектно-ориентированный яык программирования, о разработке которого в 2000 г. объявила фирма Microsoft . По своему характеру он напоминает языки C++ и Java и предназначен для разработчиков программ, использующих языки C и С++ для того, чтобы они могли более эффективно создавать Интернет-приложения. Указывается, что C # будет тесно интегрирован с языком XML . Подробнее см. – [600], а также на Web -сайте фирмы Microsoft (http://msdn.microsoft.com).

  • Clipper - Язык высокого уровня и система программирования, предназначенные для разработки программ для ПЭВМ, преимущественно - систем управления большими объемами данных (“СУБД “ ). Владельцем и разработчиком языка и системы Clipper является фирма Nantucket (США). Начало работ по их созданию связано с разработкой компилятора для dBase (см. ниже) и относится к 1984 г. (год основания фирмы Nantucket Барри Ребеллом и Брайаном Расселом). Первые программные продукты Clipper - ClipperWinter’84 (май 1985 г.), ClipperWinter’85 (январь 1986 г.), McMax (версия для ПК Macintosh - сентябрь 1986 г.) и ClipperSummer’87 (декабрь 1987 г.). Летом 1990 г. была выпущена версия языка Clipper 5.0,получившая широкое распространение в России. Она реализует концепцию открытой архитектуры и представляет собой язык, компилятор и систему разработки программ для ПЭВМ, включающую набор команд и функций, препроцессор , компоновщик, набор утилит (в т.ч. отладчик и встроенную документацию).

  • dBASE -

  1. Язык программирования высокого уровня, предназначенный для создания пакетов прикладных программ, связанных с манипулированием большими объемами данных (Xbase). Первая версия языка dBASE II вышла в свет в начале 1980-х гг., в августе 1994 г. была выпущена версия dBASE 5.0 для Windows (подробнее см. [79]);

  2. Семейство программ для ПЭВМ, предназначенное для манипулирования большими объемами данных.

  • FoxPro - Объектно-ориентированный язык, предназначенный для создания пакетов прикладных программ, в том числе для современных операционных систем, например - версия этого языка FoxPro for Windows . Об одной из последних версий этого языка - Visual FoxPro 3.0 фирмы Microsoft см. в [84].

  • SGML (Standardized General Markup Language) – “ Стандартизованный обобщенный язык разметки”. Разработка языка была вызвана необходимостью создания средств описания документов и правил их построения. Для задания структуры документа используются специальные метки – “теги”, которые отделяют друг от друга элементы документа и файлыопределения типа документа (Document Type DefinitionDTD ), выполняющие функции “грамматики” и определяющие структуру и содержание каждого элемента в документе. ПринятISO в качестве стандарта в 80-е годы. Сложность этого языка помешала ему лечь в основу первой спецификации для Web – HTML , который стал производным от SGML [336].

  • html, html (HyperText Markup Language) - “ Язык разметки гипертекста” разработан в исследовательском центре CERN в 1992 г. Он является производным от SGML (см. ниже). Html устанавливает формат гипермедийных документов, в сети WWW . HTML-документы представляют собой ASCII -файлы, доступные для просмотра и редактирования в любом текстовом редакторе. Отличием от обычного текстового файла является наличие в HTML-документах специальных команд - тэгов, которые указывают правила форматирования документа.

Концепция объектно-ориентированного программирования

Концепцию ООП характеризует следующее:

  1. В качестве строительных блоков разрабатываемых приложений используются объекты.

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

  3. Каждый объект – переменная, являющаяся представителем (экземпляром) определённого класса.

  4. Классы связаны друг с другом соотношениями, с помощью которых объекты могут расширяться; при этом описания существующих объектов могут многократно использоваться при описании новых объектов.

  5. Представителями класса могут быть представители, как непосредственного класса, так и любого класса предка.

Класс

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

Переменные в зависимости от предназначения именуются полями или свойствами. Процедуры и функции класса – методами. Соответствующий классу тип называется объектным типом.

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

type

TPerson = class (TObject)

private

fname: string[15]; faddress: string[35];

public

procedure Show;

end;

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

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

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

Тексты на Object Pascal представляются в виде модулей (pas – файлов). Классы могут быть объявлены в секции интерфейса (interface) или в секции реализации (implementation) модуля. Определение классов внутри подпрограмм и других блоков не допускается.

Объект или экземпляр объекта – это конкретный экземпляр, созданный в соответствии с его объявлением с помощью класса.

Объект может содержать другой объект. Например, объект формы может содержать объект кнопки.

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

Переменная типа класс – это переменная объектного типа и называется экземпляром класса или объектом.

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

Var student: TPerson; professor: TPerson;

Поля

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

При создании новых классов на базе ранее созданных класс-потомок наследует все поля класса-родителя. Удаление и переопределение полей невозможно. Допускается добавление новых полей.

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

В Delphi у всех стандартных классов все поля недоступны и заменены базирующимися на них свойствами. Свойства компонентов Delphi определяют их внешний вид и поведение.

Свойства

Свойства – это высокоуровневые атрибуты компонентов класса.

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

Каждому свойству соответствует поле, содержащее значение свойства, и два метода, обеспечивающих доступ к значению поля.

Методы

Метод – это подпрограмма (процедура или функция), которая определена как элемент класса. Описание метода аналогично описанию обычной подпрограммы модуля. Внутри одного класса можно объявить столько методов, сколько надо.

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

Существует четкая граница между понятиями класс и объект: класс – это описание, объект – то, что создано в соответствии с этим описанием.

Концепция ООП базируется на трёх основных принципах:

 инкапсуляция;

 полиморфизм;

 наследование.

Инкапсуляция

Инкапсуляция – объединение данных и действий над ними в одном объектном типе.

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

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

Наследование

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

В Object Pascal используется модель простого наследования, т.е. класс-потомок может иметь только одного родителя, класс-предок может иметь несколько потомков.

Полиморфизм

Полиморфизм – это возможность определения единого по имени действия (метода в виде процедуры или функции), применимого ко всем объектам иерархии наследования, т.е. возможность иметь несколько методов с одним и тем же именем для различных объектов одной иерархии. Это средство для развития объектов в потомках. Оно реализуется тем, что объект-потомок может добавлять и переопределять методы, т.е. заменять методы предка на новые с теми же именами.

Создание и уничтожение объектов

В Object Pascal экземпляры объектов могут быть только динамическими.

type

TMyObject = class(TObject)

MyField: Integer;

function MyMethod: Integer;

end;

var AMyObject: TMyObject;

В этом примере описан класс TMyObject, содержащий поле MyField и метод MyMethod.

Это означает, что в приведенном выше фрагменте переменная AMyObject на самом деле является указателем, содержащим адрес объекта.

Объект "появляется на свет" в результате вызова специального метода, который инициализирует объект – конструктора. Созданный экземпляр уничтожается другим методом – деструктором:

AMyObject := TMyObject.Create;

{ действия с созданным объектом }

...

AMyObject.Destroy;

Здесь объекта еще нет, но обратите внимание, что вызывается метод TMyObject.Create, а не AMyObject.Create. Есть такие методы (в том числе конструктор), которые успешно работают до (или даже без) создания объекта.

В Object Pascal конструкторов у класса может быть несколько. Общепринято называть конструктор create. Типичное название деструктора – Destroy.

type

TMyObject = class(TObject)

MyField: Integer;

Constructor Create;

Destructor Destroy;

Function MyMethod: Integer;

end;

Для уничтожения экземпляра объекта рекомендуется использовать метод Free, который первоначально проверяет указатель (не равен ли он Nil) и только затем вызывает Destroy:

AMyObject.Free ;

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

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

Прежде всего, для появления динамически создаваемого компонента нужно выделить под него место в памяти. Выделением места в памяти компьютера под любой компонент занимается конструктор типа объекта этого компонента - метод Create. Для этого сначала нужно описать переменную нужного типа, а затем для выделения памяти воспользоваться методом Create. Метод Create имеет параметр Owner, определяющий так называемого "владельца" для создаваемого компонента.

Хотя на самом деле владелец нужен не для создания, а для уничтожения компонента. То есть, при уничтожении компонента-владельца происходит автоматическое уничтожение всех компонентов, у которых он указан в качестве владельца.

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

. Когда компонент создан, то есть место в памяти под него выделено, можно задавать значения параметрам этого объекта. Прежде всего, это ещё один компонент, так называемый "родитель". Компонент-родитель будет отвечать за отрисовку нашего динамически создаваемого компонента. Это значит, что новый компонент появится в границах компонента-родителя.

Если компонент-владелец имеет тип TComponent, то есть может быть любым компонентом, то компонент-родитель уже имеет тип TWinControl. То есть это должен быть "оконный" компонент, умеющий принимать и обрабатывать сообщения от системы Windows. Это необходимо, так как компонент должен находиться в некоторой иерархии компонентов, принимающих и передающих сообщения от системы Windows.

Естественно, компонент не может быть родителем для самого себя. Имя компонента-родителя просто присваивается свойству Parent создаваемого динамически компонента.

Давайте для примера динамически создадим многострочный редактор, компонент Memo. Пусть он появляется на Форме по нажатию кнопки:

procedure TForm1.Button1Click(Sender: TObject); var Memo: TMemo; begin Memo:=TMemo.Create(Form1); Memo.Parent:=Form1; Memo.Left:=50; Memo.Top:=50; Memo.Width:=250; Memo.Height:=100; Memo.Text:='Я появился!'; end;

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

Для уничтожения компонента есть простой метод: Free. Все ресурсы, выделенные для функционирования компонента, будут освобождены. Останется только созданная переменная, указывающая на уже несуществующий в памяти объект. Её тоже неплохо бы уничтожить. Это делается присвоением переменной значения nil. Есть процедура, выполняющая оба эти действия, уничтожение и объекта и переменной: FreeAndNil: FreeAndNil(Component);

Для примера создадим новый класс, измененный TButton, в котором изменим значение по умолчанию свойства ShowHint на True и добавим новое свойство - счетчик нажатий на кнопку. Исходный текст выглядит так:

unit New_btn;

interface

uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics,

Controls, Forms, Dialogs, StdCtrls;

type

TMyButton = class(TButton)

private

{ Private declarations }

FClickCount : Longint;

protected

{ Protected declarations }

public

{ Public declarations }

constructor Create(AOwner : TComponent); override;

procedure Click; override;

property ClickCount : Longint read FClickCount write

FClickCount;

published

{ Published declarations }

end;

procedure Register;

implementation

constructor TMyButton.Create(AOwner : TComponent);

begin

inherited Create(AOwner);

ShowHint:=True;

FClickCount:=0;

end;

procedure TMyButton.Click;

begin

Inc(FClickCount);

inherited Click;

end;

procedure Register;

begin

RegisterComponents('Samples', [TMyButton]);

end;

end.

Введение в визуальное программирование

Delphi – это система объектно-ориентированного визуального программирования.

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

Delphi использует язык Object Pascal в среде визуальной разработки.

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

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

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

Объектно-ориентированное программирование (ООП, OOP – Object Oriented Programming) позволяет решать сложные задачи с помощью объектов, необходимых для программирования в Windows. При работе с Delphi можно и не использовать концепции ООП, но использование элементов визуальной разработки автоматически ведёт к применению ООП.

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

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

Не весь код программы, написанной для Delphi, находится в приложении Delphi. Небольшая его часть фактически является частью Windows. Например, коды для стандартных окон диалога и кнопок полностью получены от Windows. Delphi просто использует их, выполняя соответствующие вызовы из Windows DLL (Dynamic Linked Library).

Схематично взаимосвязь программ с Delphi и Windows представлена на рис.1.

Рисунок 1

Свойства – это атрибуты (основные характеристики), которые описывают особенности объекта; например, отображают такие характеристики, как цвет, высота, ширина и положение объекта. На внешний вид объекта можно воздействовать (изменять его) во время разработки и выполнения приложения, изменяя его свойства.

Практически все объекты реагируют на определённые события от мыши и клавиатуры.

Приложения Windows используют методы (подпрограммы) обработки событий для управления взаимодействием между программой и пользователем и для реакции на действия ОС. Программный код, который пишет программист в Delphi, будет обеспечивать реакцию на события. Подпрограмма, которая реагирует на событие, называется обработчиком события. Delphi работает с событиями путём вызова определённых процедур – обработчиков событий. Если процедура не связана с данным событием, то оно игнорируется и выполняется стандартная реакция системы или не производится никакого действия.

Обзор среды программирования Borland Delphi

Применение VCL-компонентов. Палитра компонентов. Работа с редактором формы.

Среда разработки Borland Delphi представляет собой пример весьма удобного визуального редактора для разработки программ на объектно-ориентированном языке программирования Object Pascal. Данная среда разработки позволяет значительно уменьшить время разработки программы, поскольку большая часть работы по программированию интерфейса приложения выполняется самой средой разработки без непосредственного набора кода программистом. Данное свойство визуальных редакторов имеет свои плюсы и минусы. К положительным чертам, прежде всего, относиться то, что программист не слишком отвлекается на такие части приложения как внешнее оформление окна, органов управления и ввода данных и т.п., и больше внимания уделяет непосредственно алгоритму функционирования программы. Также к положительным чертам можно отнести то, что поскольку в качестве органов управления программой используется стандартный набор элементов, пользователю легче разобраться в интерфейсе новой программы. К тому же большинство пользователей предпочтут программу с понятным интерфейсом и простотой управления программе с большими функциональными возможностями, но сложным нестандартным интерфейсом. К отрицательным чертам можно отнести то, что интерфейс программы, составленный из стандартных элементов, не обладает достаточной гибкостью, а также то, что код, генерируемый Delphi для стандартных элементов, содержит множество неиспользуемых в данной конкретной программе методов, являясь, по сути, мертвым кодом. И хотя последние версии компилятора обладают мощными алгоритмами оптимизации кода, полностью избавиться от мертвого кода невозможно.

Тем не менее, для неискушенного программиста, не особенно отягощенного проблемами оптимизации кода программы, Delphi предоставляет огромные возможности для быстрого написания программ малой и средней сложности. Для сравнения, реализация конкретной задачи средствами Microsoft Visual C (MSVS 6.0) с применением средств визуальной разработки заняла у опытного программиста 2.5 часа. Та же задача, реализованная средствами Borland Delphi (BD 6.0) с применением средств визуальной разработки заняла у среднего программиста 1 час 25 минут. При этом визуально программа, написанная на Delphi, выглядела более солидно в части интерфейса, но занимала в 1.5 раза больше места на диске.

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

Библиотека визуальных компонентов (VCL – Visual Component Library), предоставляемая Delphi, содержит множество стандартных элементов, которые могут использоваться программистом при разработке программы. Данная библиотека разделена на тематические группы компонент, расположенных в виде закладок на витрине компонент, расположенной в полосе инструментальных панелей интегрированной среды разработки (IDE – Integrated Development Environment).

Витрина компонент в стандартной поставке Borland Delphi включает следующие закладки:

Standart Стандартная. Содержит наиболее часто используемые компоненты;

Additional Дополнительная. Содержит компоненты, дополняющие компоненты первой закладки;

Win32 32-битные компоненты в стиле Windows 95/98 и NT;

System Системные компоненты, такие как Таймер, Плеер и другие;

Data Access Компоненты для доступа к данным через BDE – Borland Data Engine;

Data Control Компоненты для управления данными;

ADO Компоненты для связи с базами данных через Active Data Objects;

Interbase Компоненты для прямой связи с Interbase, минуя BDE и ADO;

Midas Компоненты для построения приложений баз данных с параллельными потоками;

InternetExpress Компоненты для построения приложений InternetExpress – одновременно приложений сервера Web и клиента баз данных с параллельными потоками;

Internet Компоненты для приложений, работающих с Internet;

FastNet Компоненты для реализации различных протоколов доступа к Internet;

Decision Cube Компоненты для многомерного анализа данных;

Qreport Компоненты для быстрой подготовки различного рода отчетов;

Dialogs Компоненты для реализации стандартных системных диалогов (например, диалога «открыть файл» и др.);

Win 3.1 Компоненты в стиле Windows 3.x (оставлены для обратной совместимости);

Servers Оболочки VCL для распространенных серверов COM;

Samples Образцы компонентов: различные интересные компоненты, но не до конца документированы;

ActiveX Примеры активных компонентов ActiveX.

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

Язык программирования Object Pascal