Все о delphi. Определение размера файла

Итак, в данной статье речь пойдет о том, как определить разрядность операционной системы Windows при программированиии на языке Delphi. Это нужно для того, чтобы например выбрать ту или иную версию драйвера - x86 (32 разрядная) или x64 (64 разрядная).

И так, приступим.

Создаем новый проект, кидаем на форму компонент Label (текстовая надпись).

Затем переходим в редактор исходного кода и в разделе с переменными var добавляем строковую переменную razr (тип данных string, т.е строка).

var Form1: TForm1;

razr: string;

После этого два раза нажимаем на форму, копируем и вставляем в нее следующий код (в процедуре создания главной формы TForm1.FormCreate), между фразами begin и end; (то есть началом и концом процедуры).

{с помощью функции Get Enviroment Variable считываем знаение переменной ProgramFiles(X86)

если система 32 разрядная, то она будет иметь пустое значение

если 64 разрядная, то она будет иметь знаение C:Program Files(x86)

т.е папка, в которую устанавливаются 32 разрядные версии программ}

razr:= GetEnvironmentVariable("ProgramFiles(x86)");

label1.Caption:= razr;

if (razr = "") then

begin

label1.Font.Color:=clRed; { Меняет цвет надписи, вы можете выбрать любой на ваш вкус, например clGreen - зеленый}

label1.Caption:= "У вас x86"; {вместо имени метки labl1 вы можете написать любое другое, например metka}

else

begin

label1.Font.Color:=clBlue; { Меняет цвет надписи, вы можете выбрать любой на ваш вкус, например clGreen - зеленый}

label1.Caption:= "У вас x64";

end;

Как же работает программа?

C помощью функции Get Enviroment Variable происходит считывание значения переменной окружения в Windows ProgramFiles(X86).

Если система 32 разрядная, то она будет иметь пустое значение.

Если 64 разрядная, то она будет иметь знаение C:Program Files(x86) т.е это папка, в которую устанавливаются 32 разрядные версии программ.

Собственно на этом всё.

Вот, что получилось у меня.

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


Комментарии ()

wdfm 90

На Windows 7 x64 программа работает отлично, можно пользоваться

Edward 300

Все кто будет разводить офф топик + нецензурную брань, я буду давать бан на 1 день! Это не касается администраторов.
.php?board=18.0

Форум не за просто так я делал!

Edward 300

Основные понятия и принципы системы Delphi .

Цель:

Дать студентам общие сведения об объектно-ориентированном языке программирования Delphi.

План занятия.

    Организационный момент.

    Изучение нового материала.

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

  1. Домашнее задание.

Изучение нового материала.

Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую «быструю разработку», среди которых можно выделить Borland Delphi. В основе систем быстрой разработки (RAD-систем, Rapid Application Development – среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть генерации кода программы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий. Delphi – это среда быстрой разработки, в которой в качестве языка программирования используется Object Pascal. В основе идеологии Delphi лежит технология визуального проектирования и методология объектно-ориентированного событийного программирования.

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

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

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

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

Одна из главных задач Delphi – разработка приложений для работы с базами данных. В Delphi можно работать с различными СУБД (системами управления базами данных).

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

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

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

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

Схема взаимосвязи программы приложения с Delphi и Windows

Свойства и реакция объектов на события

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

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

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

Основные понятия и принципы программирования

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

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

Алгоритмы и программы

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

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

Среда Delphi 7 и ее составляющие

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

Основные окна системы Delphi

Вид экрана после запуска Delphi несколько необычен. Вместо од­ного окна на экране появляются пять:

    главное окно - Delphi ;

    окно стартовой формы - Form 1;

    окно редактора свойств объектов - Object Inspector ;

    окно просмотра списка объектов - Object Tree View ;

    окно редактора кода - Unit 1. pas .

Окно редактора кода почти полностью закрыто окном стартовой формы.

Главное окно занимает верхнюю часть экрана. В нем расположены: строка за­головка, строка главного меню, панель инструментов и панель палитры компо­нентов. После загрузки Delphi заголовок главного окна: "Delphi 7 - Projectl".

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

Панель инструментов расположена в левой части главного окна и служит для более удобного и быстрого обращения к наиболее важным командам главного меню. Набор команд панели инструментов можно настроить с помощью коман­ды Customize из всплывающего (контекстного) меню этой панели. На панели инструментов размещены 4 подпанели с кнопками с ярлычками посказок: New Items (новые данные), Open file (открыть файл), Sаvе(сохранить), Save All (сохранить все), Open Project (открыть проект), Add file to project (добавить файл к проекту), Remove file from project (исключить файл из проекта), Help contents (содержание помощи), View Unit (просмотр модулей), View Form (просмотр форм), Toggle Form\Unit (переход от формы к модулю и обратно), New Form (создать новую форму), Run (F9) (запустить приложение), Pause (приостановить выполнение приложения), Trace into (F7) (построчно выполнить), Step over (F8) (построчно выполнить, в том числе подпрограмму за одно нажатие F8).

Панель палитры компонентов расположена в правой части главного окна сре­ды разработчика. Она открывает доступ к VCL (Visual Component Library - биб­лиотеке визуальных компонентов) и содержит кнопки с пиктограммами компо­нентов VCL. С помощью палитры компонентов можно выбрать и включить в приложение всевозможные интерфейсные элементы управления: кнопки, меню, списки, панели и пр. Палитра компонентов состоит из ряда страниц с различными группами компонентов. В Delphi можно изменять содержимое страниц Палитры компонентов и добавлять в нее пиктограммы собственных компонентов.

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

Окно Инспектора объектов - это двухстраничное окно редактора свойств объектов предназначено для редактирования значений свойств объектов. Оно отображает свой­ства или события одного или нескольких выбранных объектов или форм. Окно Инспектора объектов содержит 2 страницы: страницу свойств (Properties) и страницу событий (Events). В верхней части Инспектора объектов страницы помечены закладками (tabs). С их помощью можно переходить со страницы на страницу в процессе разработки приложения. В верхней части Инспектора объ­ектов расположен выпадающий список с именами компонентов активной фор­мы: окно с кнопкой справа. При нажатии на кнопку появляется выпадающий список, из которого можно выбрать и тем самым активизировать требуемый объект формы.

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

В скомпилированном приложении сетка не появляется. Окно формы содержит органы взаимодействия пользователя с задачей в процессе выполнения приложения. Для новых форм заголовок этого окна по умолча­нию = "Form 1". В процессе разработки приложения его можно изменить. Простые программы имеют одну форму, более сложные могут иметь ряд форм.

Когда компонент из палитры компонентов помещен в окно разрабатываемой формы, его имя попадает в список Инспектора объектов, который отображает информацию о свойствах компонента, выбранного в окне формы. Все данные о компоненте представлены на двух страницах Инспектора объектов. Причем в нем отображается информация о том объекте, который выбран в окне активной формы или из списка объектов Инспектора. Инспектор объектов связан с редак­тором кода. Каждый компонент является объектом и имеет свои свойства и ме­тоды. Свойства отображают состояние компонента (его место на форме, размеры и пр.). Методы реализуют реакцию компонента на различные события (нажа­тие кнопки мыши на кнопке формы, перемещение мыши по форме, отпускание кнопки мыши и пр.). Тексты методов для реализации реакции компонента со­держит Редактор кода.

Окно редактора кода содержит код (текст) программы на языке Object Pascal. В нижней части окна есть закладка с именем Code для перехода из Окна формы в Окно редактора кодов. Каждая форма имеет текст соответствующего ей моду­ля. По умолчанию имя модуля формы Form1 = "Unit 1.pas". В верхней части Окна редактора имеются закладки для выбора текста одного из открытых модулей. Список всех модулей, доступных в приложении, можно вызвать с помощью кнопки - View Unit на панели инструментов или пункта меню View\Units. В нижней части Окна редактора отображается также информация компилятора (сообщения об ошибках, обнаруженных на этапе компиляции) и интегрирован­ного отладчика. Окно редактора является многостраничным. Если проект со­держит несколько модулей, редактор обеспечивает доступ и работу с каждым из них. Переход от модуля к модулю осуществляется с помощью закладок, распо­ложенных в верхней части Окна редактора или команды подменю View\Units.

Файлы проекта.

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

    Dpr – главный файл проекта. Содержит исходный код инициализации приложения и создания форм.

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

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

    Res – файл ресурсов проекта. Содержит пиктограмму, которая затем сохраняется в выполняемом файле приложения, и другие ресурсы.

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

Главный файл проекта (. dpr ).

Содержимое главного файла проекта представлено в следующем листинге.

program Project1;

Unit1 in "Unit1.pas" {Form1};

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

Слово program сообщает компилятору о том, что данная программа предназначена для создания выполняемого файла. После него указывается имя проекта (в данном случае Project1).

Раздел uses

Перечисляются программные модули Object Pascal, которые система Delphi должна скомпоновать с данной программой при создании выполняемого файла. Модуль Forms, с которого начинается перечень модулей проекта, - это одна из составных частей библиотеки визуальных компонентов. Назначение этого модуля состоит в определении характеристик форм в приложениях, разрабатываемых в Delphi. Остальным модулям соответствуют формы, созданные для конкретного проекта. Здесь указывается имя модуля (Unit1), имя файла с исходным кодом этого модуля (Unit1.pas), а также имя формы, хранящейся в данном модуле (Form1). Имени формы соответствует значение свойства Name каждого объекта класса TForm в том виде, в котором оно отображается в инспекторе объектов Delphi.

Раздел $R

Директива $R сообщает компилятору, что проект нужно включить ресурс Windows, указанный в директиве. Символ звездочки, указанный в качестве имени файла, означает, что имя файла ресурса совпадает с именем файла проекта. Файл ресурсов (.res) создается автоматически при компиляции проекта.

Объект Application

Объект Application – это экземпляр класса TApplication. Он создается автоматически и предназначен для управления приложением в целом. Инициализация приложения начинается с вызова метода Application.Initialize. После него последовательно для каждой формы вызывается метод Application.CreateForm. этот метод создает формы, то есть загружает их в оперативную память. Если в проекте используется несколько форм, то непосредственно при инициализации приложения обязательно необходимо создавать только ту форму, которая является главной. Остальные формы можно создавать динамически, то есть в процессе работы приложения. Такой подход позволяет более рационально использовать системные ресурсы и ускоряет запуск приложений.

Метод Application.Run

С метода Application.Run и начинается работа приложения. Он запускает цикл обработки сообщений, на котором построена работа программ. Приложение завершает работу при поступлении сообщения о его закрытии.

Файлы программных модулей (. pas )

Рассмотрим структуру файлов программных модулей на примере модуля Unit1, представленного в листинге.

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

TForm1 = class(TForm)

{ Private declarations }

{ Public declarations }

Программный модуль состоит из двух разделов, обозначенных ключевыми словами interface и implementation. В интерфейсном разделе (между ключевыми словами interface и implementation) указываются элементы программного модуля, доступные для других модулей и программ. Здесь объявляются функции, процедуры, переменные, константы и типы. Здесь в интерфейсном разделе указаны ссылки на подключаемые модули, а также автоматически созданные Delphi объявления класса формы Form1.

Объявление переменной экземпляра формы:

Здесь объявляется переменная Form1 типа TForm. Тип TForm1 – это созданный при помощи конструктора форм Delphi класс, производный от класса TForm. Переменная Form1 инициализируется оператором Application.CreateForm. так как эта переменная объявлена в интерфейсном разделе, то к ней можно обращаться и модифицировать ее значение из главного файла проекта, а также из других модулей. Для того, чтобы можно было обращаться к переменной Form1 из других модулей, в разделе uses этих модулей должна быть указана ссылка на модуль Unit1. в разделе реализации, после ключевого слова implementation, располагается программный код модуля. Все операторы, помещаемые в раздел реализации, доступны только внутри данного программного модуля. Для того, чтобы получить доступ к тем или иным элементам извне модуля, необходимо поместить соответствующие объявления в интерфейсный раздел этого модуля. Типичным случаем организации программного модуля является размещение объявления функции в разделе interface, а операторов это функции implementation.

Файлы форм (. dfm )

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

object Form1: TForm1

Caption = "Form1"

Color = clBtnFace

Font.Charset = DEFAULT_CHARSET

Font.Color = clWindowText

Font.Height = -11

Font.Name = "MS Sans Serif"

OldCreateOrder = False

PixelsPerInch = 96

Здесь можно изменить любые свойства самой формы и расположенных на ней компонентов.

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

    В чем суть Delphi?

    Что является основой программирования?

    Понятие события.

    Среда Delphi и ее составляющие.

    Перечислите файлы проекта.

Резюме.

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

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

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

    Вместо од­ного окна на экране появляются пять: главное окно; окно стартовой формы; окно редактора свойств объектов; окно просмотра списка объектов; окно редактора кода.

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

    • Dpr – главный файл проекта. Содержит исходный код инициализации приложения и создания форм.

      Pas – файлы программных модулей, содержащих исходный код на языке Object Pascal. Для каждой формы, входящей в состав проекта, создается отдельный программный модуль.

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

      Res – файл ресурсов проекта. Содержит пиктограмму, которая затем сохраняется в выполняемом файле приложения, и другие ресурсы.

Домашнее задание.

Повторить основные операторы языка Turbo Pascal.

Сайт:

Delphi (Де́лфи, произносится /ˈdɛlˌfi:/ ) - императивный , структурированный , объектно-ориентированный язык программирования , диалект Object Pascal . Начиная со среды разработки Delphi 7.0 , в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal . Начиная с 2007 года уже язык Delphi (производный от Object Pascal) начал жить своей самостоятельной жизнью и претерпевал различные изменения, связанные с современными тенденциями (например, с развитием платформы.NET) развития языков программирования: появились class helpers, перегрузки операторов и другое.

Целевая платформа

Изначально среда разработки была предназначена исключительно для разработки приложений Microsoft Windows , затем был реализован также для платформ Linux (как Kylix), однако после выпуска в 2002 году Kylix 3 его разработка была прекращена, и, вскоре после этого, было объявлено о поддержке Microsoft .NET .

Реализация среды разработки проектом Lazarus (Free Pascal , компиляция в режиме совместимости с Delphi) позволяет использовать его для создания приложений на Delphi для таких платформ, как Linux, Mac OS X и Windows CE .

Также предпринимались попытки использования языка в проектах GNU (например, Notepad GNU) и написания компилятора для GCC .

История языка

Object Pascal - результат развития языка Турбо Паскаль , который, в свою очередь, развился из языка Паскаль . Паскаль был полностью процедурным языком , Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в Object Pascal - динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией - данная технология получила обозначение RTTI . Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию.

Также отличительным свойством Object Pascal от С++ является то, что объекты по умолчанию располагаются в динамической памяти. Однако можно переопределить виртуальные методы NewInstance и FreeInstance класса TObject. Таким образом, абсолютно любой класс может осуществить «желание» «где хочу - там и буду лежать». Соответственно организуется и «многокучность».

Object Pascal (Delphi) является результатом функционального расширения Turbo Pascal .

Delphi оказал огромное влияние на создание концепции языка для платформы .NET . Многие его элементы и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга , одного из ведущих разработчиков Дельфи, из компании Borland Ltd. в Microsoft Corp.

  • Версия 8 способна генерировать байт-код исключительно для платформы.NET. Это первая среда, ориентированная на разработку мультиязычных приложений (лишь для платформы.NET);
  • Последующие версии (обозначаемые годами выхода, а не порядковыми номерами, как это было ранее) могут создавать как приложения Win32, так и байт-код для платформы.NET.

Однако в ноябре того же года было принято решение отказаться от продажи IDE бизнеса. Тем не менее, разработкой IDE продуктов теперь будет заниматься новая компания - CodeGear, которая будет финансово полностью подконтрольна Borland.

В августе 2006 года Borland выпустил облегченную версию RAD Studio под именем Turbo: Turbo Delphi (для Win32 и.NET), Turbo C#, Turbo C++.

В марте 2008 года было объявлено о прекращении развития этой линейки продуктов.

В марте 2007 года CodeGear порадовала пользователей обновленной линейкой продуктов Delphi 2007 for Win32 и выходом совершенно нового продукта Delphi 2007 for PHP.

В июне 2007 года CodeGear представила свои планы на будущее, то есть опубликовала так называемый roadmap .

Embarcadero RAD Studio 2010

  • По умолчанию полная поддержка Юникода во всех частях языка, VCL и RTL; замена обращений ко всем функциям Windows API на юникодные аналоги (то есть MessageBox вызывает MessageBoxW, а не MessageBoxA).
  • Обобщённые типы , они же generics .
  • Новая директива компилятора $POINTERMATH .
  • Функция Exit теперь может принимать параметры в соответствии с типом функции.

Компиляторы

  • Embarcadero Delphi (ранее наз. CodeGear Delphi и Borland Delphi) - наверное, самый известный компилятор, который является последователем Borland Pascal и Turbo Pascal . Используется Win16 (Delphi 1), Win32 (Delphi 2 и позже), Win64 (Delphi 16 (XE2) и позже), а также .NET 1.x, 2.0 (Delphi 8, Delphi 2005-Delphi 2007). Поддержка.NET, впоследствии выделена в отдельный продукт, известный как Oxygene.
  • Free Pascal (FPC) - свободный компилятор Оbject Pascal, который поддерживает различные диалекты Паскаля, включая Turbo Pascal , Delphi и собственные диалекты. На текущий момент, FPC может генерировать код для x86 , x86-64 , PowerPC , SPARC и процессоров ARM , а также для различных операционных систем, в том числе для Microsoft Windows , Linux , FreeBSD , Mac OS . Существует несколько сред разработки программного обеспечения для FPC (один из самых известных представителей - Lazarus).
  • GNU Pascal (отдельно разработанная версия из GCC). Не ставит целью продолжение серии диалектов Delphi, как составляющей Паскаля, но тем не менее содержит режим совместимости Borland Pascal, и очень медленно приспосабливает компоненты языка Delphi. Не подходит для компиляции больших проектов, содержащих код Delphi, но стоит отметить, что его поддерживают большинство операционных систем и архитектур.
  • Oxygene (ранее известен как Chrome ) - компилятор Object Pascal, который интегрирован в Microsoft Visual Studio . Также доступный в виде компилятора с вольной командной строкой CLI . Использует.NET и моно платформы. В настоящий момент продаётся под маркой Embarcadero Delphi Prism.
  • MIDletPascal - язык программирования с Delphi-подобным синтаксисом, и одноименный компилятор, который преобразует исходный код в компактный и быстрый байт-код Java .
  • PocketStudio - основанная на Паскале, IDE для Palm OS .
  • Virtual Pascal - Бесплатный компилятор и текстовая IDE для Win32, OS/2 и Линукса. На тот момент очень быстрый и весьма совместимый (частично поддерживаются конструкции Delphi 5). Внешне очень похож на текстовую среду Borland Pascal 7, хотя отсутствует совместимая с ним графика, например. Однако разработка окончилась в 2004 году, а исходники открыты не были. С тех пор FPC ушёл намного вперед и в целом для программирования лучше он. Тем не менее, VP остаётся очень неплохим вариантом быстрой замены ещё более устаревших версий Borland Pascal для школы/института, учитывая родную работу в Win32 без проблем с русскими кодировками.

Синтаксис языка

Операторы

Список операторов через пробел: := + - * / div mod not and or with xor shl shr ^ = <> >= <= < > @ in is as

Выражения

Выражения в Object Pascal (Delphi) бывают арифметическими, логическими и строковыми.

Основные логические выражения:
Логические выражения в основном употребляются в условных операторах. К логическим выражениям относятся такие операции как:

  • not - «НЕ», отрицание логического выражения (NOT <логическое_выражение>)
  • and - «И», умножение (пересечение) логических выражений (<логическое_выражение1> AND <логическое_выражение2>)
  • or - «ИЛИ», объединение логических выражений (<логическое_выражение1> OR <логическое_выражение2>)
  • xor - «Исключающее ИЛИ», отрицание ИЛИ, все что не попадает под ИЛИ (<логическое_выражение1> XOR <логическое_выражение2>)

Типы данных

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

Объекты

  • Продукция Embarcadero: Embarcadero Delphi, Embarcadero C++ Builder , Borland JBuilder 1 и 2 версии.
  • Администрирование и разработка баз данных: MySQL Tools, IBExpert .
  • Инженерное программное обеспечение: Altium Designer .
  • Файловые менеджеры: Total Commander , Frigate .
  • Просмотрщики графики: FastStone Image Viewer , FuturixImager , drComRead.
  • Видео- и аудиопроигрыватели: Light Alloy , The KMPlayer , AIMP , X-Amp.
  • Программы мгновенного обмена сообщениями: QIP , R&Q , графический интерфейс Skype , The Bat! , PopTray , FeedDemon .
  • Создание музыки: FL Studio , Guitar Pro (до версии 6.0).
  • Разработка программного обеспечения: Dev-C++ , DUnit , Game Maker , Inno Setup , PyScripter.
  • Веб-разработка: Macromedia HomeSite .
  • Текстовые редакторы: BirEdit , Notepad GNU , Bred .
  • Бухучёт и налогообложение: «ПАРУС », AVARDA (до версии 6.x включительно).
  • Программы для создания анимаций : Pivot Stickfigure Animator .
  • Программы для сжатия данных : ALZip , PowerArchiver , PeaZip .
  • Компьютерные игры: Age of wonders , «Космические рейнджеры », Venom. Codename: Outbreak , Space Empires V , «Правда о девятой роте ».
  • Графические редакторы: Real Paint.

Примечания

Литература

  • Нил Дж. Рубенкинг. Язык программирования Delphi для «чайников». Введение в Borland Delphi 2006 = Delphi for Dummies. - М .: Диалектика, 2007. - 336 с. - ISBN 0-7645-0179-8
  • Хавьер Пашеку. Программирование в Borland Delphi 2006 для профессионалов = Delphi for .NET Developer’s Guide. - М .: Вильямс, 2006. - 944 с. - ISBN 0-672-32443-X
  • А. Н. Вальвачев, К. А. Сурков, Д. А. Сурков, Ю. М. Четырько. Программирование на языке Delphi. Учебное пособие . - 2005.

Ссылки

  • Страница среды программирования на сайте Embarcadero Technologies

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

Что такое программирование

Итак, прежде всего, уясним для себя, что же понимают под термином программирования? Сейчас многие называют себя программистами, не зная даже о том, что это такое: на проверку оказывается, что человек, изменивший пару строк кода в HTML-документе уже готов считать себя программистом. Но на самом деле, работая с HTML (именно с самим HTML), стать программистом нельзя, поскольку HTML, что явствует из названия (Hypertext Markup Language - язык разметки гипертекста), языком программирования не является.

В результате мы имеем первое условие: для изучения программирования нужен какой-либо язык программирования. В нашем случае это будет язык Object Pascal последних версий (14.0 или 15.0).

Далее, допустим кто-то, называющий себя программистом, не только правил пару строк кода HTML, но и видел Delphi, и даже нарисовал в нем форму с 2-3 кнопками и текстовым полем. Это ли программист? Скорее всего, тоже нет. Дело в том, что под визуальной оболочкой, на самом деле, скрывается сложнейший механизм, обеспечивающий взаимодействия элементов управления (тех же кнопок) с пользователем и операционной системой - с одной стороны, и позволяющий выполнять практически любые вычислительные действия - с другой. При всем этом следует уметь делать главное - составлять алгоритмы поведения программы - будь то ее реакция на нажатие той или иной кнопки, или создание функции для решения сложного математического уравнения.

Так вот, программирование в, своем современном понятии, включает в себя знание принципов работы операционной системы, взаимодействия ее компонентов и внутреннего устройства. Ну и при этом сохраняется классическое определение программирования, а именно - умение составлять алгоритмы, математические и поведения программы. Все это реализуется в контексте какого-либо языка программирования, например, того же Object Pascal из Delphi.

Что такое Delphi

Теперь мы знаем, что программирование - есть составление алгоритмов плюс использование языка программирования. Но если изучаемым нами языком является Object Pascal, то что такое Delphi? Ответ таков: Delphi - это RAD, или Rapid Application Development - среда быстрой разработки приложений. Иначе говоря, Delphi включает в себя не только все средства для работы с языком Object Pascal (тем более, что начиная с версии, 2005 в Delphi имеется поддержка других языков программирования, в частности, C#), но и ряд дополнительных средств, призванных максимально ускорить и упростить создание программ. К таковым средствам относятся, прежде всего, визуальный редактор форм, при помощи которого за считанные минуты и без лишних усилий можно создать полноценно выглядящую программу, а так же прочие составные части визуальной составляющей разработки программ.

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

Вкупе с развитыми средствами для написания и отладки кода - специализированным текстовым редактором, оптимизирующим компилятором и отладчиком, Delphi являет собой средство быстрой разработки приложений. При этом основой Delphi для конечного пользователя является IDE - Integrated Development Environment (интегрированная среда разработки), которая объединяет в себе редактор кода и средства визуальной разработки, а также связывает это с компилятором, средствами разработки баз данных и прочими составными частями Delphi.

Delphi и другие

Разумеется, Delphi - не единственная среда быстрой разработки приложений. Существуют и другие RAD, столь же удобные для визуальной разработки программ, например, Visual Basic. Но BASIC известен как не самый мощный и удобный язык программирования, кроме того, программы на нем отличаются сравнительно невысоким быстродействием.

Вместе с тем, имеются и не менее мощные, по сравнению с Object Pascal, языки программирования, имеющие свои RAD - прежде всего, это язык C++ вместе с таким наиболее известными средствами разработки, как Visual C++ и C++ Builder. Однако C++ не в лучшую сторону отличается от Object Pascal с точки зрения простоты изучения. Кроме того, сборка и отладка программ на C++ происходит сравнительно медленно, хотя готовые программы выполняются так же быстро, как и созданные при помощи Delphi.

ПРИМЕЧАНИЕ
Отметим, что в момент своего появления в 1995 году, Delphi была действительно уникальной средой, объединяющей в себе визуальное программирование с оптимизирующим компилятором и средствами для работы с базами данных.

В результате мы получаем практически идеальный продукт для быстрой разработки программ: с одной стороны простота и удобство, сравнимые с Visual Basic, а с другой - мощь, скорость и гибкость, характерные для C++.

Здесь следует отметить, что используемый в Delphi язык Object Pascal имеет мало общего со своим прародителем - языком программирования Pascal, который, возможно, вы изучали в школе или в ВУЗе. Прежде всего, в Delphi применяется чистая объектно-ориентированная модель программирования, в то время как Pascal был обычным процедурным языком. В чем же суть отличий процедурного программирования от объектно-ориентированного? Вот этот вопрос мы и обсудим в следующих двух параграфах.

Процедурное программирование и алгоритмы

Практически все современные языки программирования являются процедурными по своей сути. Это означает, что каждая программа состоит из набора процедур, каждая из которых решает ту или иную задачу, при этом одна процедура может вызывать любую другую, в том числе и саму себя (последнее, т.е. вызов процедурой самой себя, называется рекурсией). Собственно программа составляется на основе алгоритмов, причем достаточно всего трех их разновидностей - выбора (развилки), повтора (цикла) и перехода. Впрочем, последний тип на практике практически не используется ввиду своей дурной репутации (речь о GOTO - некогда любимом, от безысходности, операторе BASIC -программистов).

Давайте рассмотрим простейший алгоритм - для игры "угадай число". Логика его работы состоит в том, что требуется проверить, является ли число большим или меньшим, чем загаданное, и если это так, ты вывести соответствующую подсказку, а если оно не больше и не меньше (т.е. совпадает) - то игра заканчивается. Блок-схема такого алгоритма будет состоять из 2 ветвлений (рис. 1.1).

Рис. 1.1. Блок-схема простого алгоритма

Первым делом здесь у пользователя запрашивается число A, которое дважды сравнивается с предварительно заданным числом B. Сначала проверяется, не является ли число A больше, чем B, и если да, то программа сообщает, что произошел "перелет", и возвращается на точку ввода числа. Если число не больше, то происходит второе сравнение - на то, не является ли A меньше B. Если это так, то выводится сообщение о том, что число меньше ("недолет") и, опять-таки, происходит возвращение к началу. Но если число A не меньше числа B, то, учитывая тот факт, что на данный момент уже известно, что оно и не больше, следовательно, оно равно числу B, и программа завершает свою работу. При этом она может вывести поздравление пользователя с тем, что он угадал число.

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


Рис. 1.2. Блок-схема управления программой

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

Конкретная реализация того или иного алгоритма зависит от применяемого языка программирования, а так же от предпочтений создателя программы, поскольку, как правило, одну и ту же конструкцию можно решить, используя несколько различных методов. Например, для возврата к какой-либо точке, обозначенной на блок-схеме, можно использовать как циклы, так и операторы безусловного перехода. Ну а сами блоки могут выноситься в отдельные процедуры и вызываться в качестве подпрограмм. Единственной общей чертой является условный оператор, отвечающий за развилку - практически во всех языках, и Pascal тут не исключение, он называется IF. Впрочем, с операторами Object Pascal мы еще успеем ознакомиться.

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

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

ПРИМЕЧАНИЕ
Под термином "объект" в программировании понимают некий сложный тип данных, к которому могут быть привязаны уникальные для данного типа свойства, а в случае ООП - также и методы.

Инкапсуляция представляет собой объединение данных и обрабатывающих их подпрограмм - методов - внутри одного объекта, называемого в ООП "классом". Это означает, что в классе инкапсулируется все необходимое для работы с тем или иным объектом.

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

В Object Pascal все классы происходят от единого предка - класса TObject, который реализует такие общие для всех классов действия над объектом, как создание и удаление.

СОВЕТ
В поставку коробочных версий Delphi включен плакат, на котором изображено дерево классов для всех основных компонент Delphi. Поэтому если вы - счастливый обладатель лицензионного продукта, то можете наглядно изучать устройство этой системы, разместив этот плакат на своем рабочем месте.

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

Еще одна важная составная деталь, характерная для ООП - это скрытие, которое позволяет делать невидимым ряд свойств объектов. Иными словами, если у нас может быть определен объект типа "машина", для которого, в свою очередь, определены такие свойства, как шасси, мотор и колеса. Так вот, если мотор и колеса, можно сделать видимыми (и доступными) повсеместно, где только доступен сам класс "машина", то шасси - нет. Соответственно доступ к такому свойству можно будет получить только в тех частях программы, в которых производится описание самого объекта "машина". Такие свойства называют защищенными.

Подробнее об объектно-ориентированном программировании будет рассказано во второй части настоящего издания.

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

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


Рис. 1.3. Классический и визуальный подходы к созданию интерфейса

То, что Delphi является визуальной средой разработки, наносит свой отпечаток и на язык программирования. В частности, в нем предусмотрены специальные средства для того, чтобы определенные свойства классов могли быть доступны уже на этапе разработки программы, а не только во время выполнения. Но самой важной частью всего этого великолепия является библиотека классов - VCL (Visual Component Library). Именно VCL скрывает все острые углы внутренностей Windows, и позволяет легко создавать приложения, не вступая в затяжную войну с обработкой системных сообщений, обратных вызовов, дескрипторов и указателей.

При всем этом, разумеется, никто не запрещает вам при надобности использовать функции Windows напрямую, в обход VCL. Впрочем, такое может понадобиться весьма нечасто, поэтому для начинающего программиста на Delphi, для написания Windows-приложений ничего, кроме VCL, не требуется.

Визуальные компоненты мы детально рассмотрим в 3-й части этой книги.

Версии Delphi и их отличия

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

Delphi 1 . Вышедший незадолго до появления Windows 95, Delphi 1.0 был первым инструментом разработки приложений Windows (3.1), объединившим в себе оптимизирующий компилятор, визуальную среду разработки и мощные средства для работы с базами данных. Для языка Pascal это стало настоящим перевоплощением - он стал Object Pascal.

Delphi 2 . Вышедшая через год 2-я версия Delphi предлагала все то же, но уже для 32-разряных версий Windows (95/NT), опять-таки став первым средством, сочетающим 32-битный компилятор, средства для работы с БД и визуальную среду разработки, поддерживающую OLE (а после выхода обновленной Delphi 2.01 - и ActiveX). Язык так же изменился, став ориентированным на 32-разрядное применение.

Delphi 3 . Дальнейшее совершенствование Delphi по всем направлениям привело к выходу 3-й версии, имевшей расширенный набор инструментов для создания приложений благодаря поддержке COM и ActiveX. В этой версии также впервые был сделан акцент на возможности создания приложений для Интернета, а так же появился нетипизированный тип данных - variant.

Delphi 4 . Еще одна ключевая веха развития. В этой версии было введено много нового и полезного для упрощения разработки приложений, включая новую среду с динамическими подсказками и т.д. Была усовершенствована модель работы с компонентами (VCL), появилась возможность быстрого использования таких технологий, как MIDAS, DCOM и CORBA. В этой версии так же был усовершенствован язык Object Pascal: появились новые черты, свойственные современному ООП, были введены новые типы данных, включая 64-битные.

Delphi 5 . Изменений в Delphi 4 было так много, что, к сожалению, не обошлось без досадных накладок и ошибок. Результатом был выпуск 3-х пакетов обновлений (наши пираты продавали их под вывесками Delphi 4.1, 4.2 и 4.3). Но самым полным и правильным пакетом обновлений следует считать Delphi 5 - в этой версии было доведено до ума все то, что было начато в Delphi 4.

Delphi 6 . С выходом шестой версии Borland провозгласила новую, кросс-платформенную эпоху в Delphi, параллельно выпустив версию Delphi для ОС Linux (Kylix 1.0). Теперь при создании приложения можно было выбирать его тип - для Windows, или же универсальное. Соответственно, к библиотеке VCL добавилась библиотека CLX, совместимая как с Windows, так и с Linux. Кроме того, в 6-й версии наконец-то появились "родные", а не чужеродные ActiveX, компоненты для работы с Интернетом, причем сразу в обоих вариантах - и для VCL и для CLX. Начиная с этой версии, сам язык программирования Object Pascal официально называется Delphi.

Delphi 7 . Дальнейшее развитие Delphi 6, улучшенная библиотека CLX и новая корреспондирующая версия среды разработки под ОС Linux - Kylix 3. Вместе с тем, начиная с Delphi 7, Borland озаботилась вопросом совместимости с еще одной платформой - Microsoft .NET, для чего некоторые изменения были внесены как в VCL, так и в язык (и, соответственно, в компилятор).

Delphi 8 . Первая версия Delphi, ориентированная на работу с платформой Microsoft.NET. В этой версии разработчики рискнули изменить интерфейс среды, сделав его похожим на продукцию Microsoft - нового крупного акционера Borland. Поддержка, соответственно, была Kylix прекращена.

Delphi 2005 . Менее чем через год после выхода Delphi 8, появилась новая версия, в которой спешно вернули возможность работать в классическом стиле IDE при разработке приложений для Windows. Вместе с тем, Delphi 2005, в случае разработки приложений специально для платформы NET, позволяет работать не только с языком Delphi, но и с C#. При этом в сам язык Delphi были введены такие новшества, как оператор for…in и встраиваемые процедуры и функции.

Delphi 2006 . Последняя версия Дельфи, выпущенная фирмой Borland. Так же была выпущена облегченная версия - Turbo Delphi . Дальше началось странствие по другим разработчикам.

Delphi 2007 . Версия, выпущенная CodeGear. Добавлена поддержка интерфейса Aero для Windows Vista.

Delphi 2009 . Версия, выпущенная Embarcodero. Реализована поддержка Unicode в VCL и RTL, заменены обращения ко всем функциям Windows API на аналоги в Unicode, добавлены обобщенные типы и анонимные методы.

Delphi 2010 . Поддержка Windows 7, компоненты для работы с касаниями и жестами, компоненты dbExpress теперь официально поддерживает Firebird.

Delphi XE (Delphi 2011) . Добавлена поддержка для облачных вычислений.