Язык программирования Delphi достаточно прост для освоения, но очень эффективный и мощный. Самое первое, с чем надо познакомиться — это комментарии.
Комментарии — это любой текст, который абсолютно не влияет на код программы. Он никогда не компилируется и не вставляется в исполняемый файл, а используется только для пояснений кода.
- все, что идет после двойного слеша //, воспринимается как комментарий
(так можно оформить только одну строку комментария); - все, что заключено в фигурные скобки < и >, тоже является комментарием
(в этом случае можно включить в комментарий сколько угодно строк).
// Это комментарий.
Это уже не комментарий
В данной статье постоянно будут использоваться комментарии для пояснения кода описываемых программ. Именно поэтому до начала разбора кода мы должны были познакомиться с ними.
Теперь вы готовы к изучению языка программирования Delphi. Создайте новый проект. После этого перейдите в редактор кода. Здесь для вас уже написана заготовка будущей программы.
Давайте досконально рассмотрим, что тут написано. Ниже приведены подробные комментарии для каждой строчки созданного шаблона. Однако здесь кое-что упущено в целях удобства изучения программного кода.
Сгенерированный оболочкой Delphi шаблон
unit Unitl; //Имя модуля
uses //После этого слова идет перечисление подключенных модулей.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type //После этого идет объявление типов
TForml = class(TForm) //Начало описания нового объекта TForm. Здесь описываются компоненты и события Формы
private //После этого слова можно описывать закрытые данные объекта
//Подсказка, которую сгенерировал Delphi. Здесь можно описывать переменные и методы,
доступные только для объекта TForml
public //После этого слова можно описывать открытые данные объекта
//Подсказка, которую сгенерировал Delphi. Здесь можно описывать переменные и методы,
доступные из любого другого модуля
end; //Конец объявления типов
var //Объявление глобальных переменных
Forml : TForml; //Это описана переменная Forml типа объекта TForml
implementation
//Подключение .dfm файла (файл с данными о визуальных объектах)
end. // end с точкой — конец модуля
Если что-то осталось еще непонятным, то в процессе создания реальных программ все встанет на свои места. Не старайтесь запомнить все сразу, потому что это нереально. Слишком много новой информации, не подкрепленной практикой. Старайтесь понять только смысл написанной программы.
Практически все строчки заканчиваются знаком «;» (точка с запятой). Этот знак показывает конец оператора. Он ставится только после операторов и никогда не используется после ключевых слов типа
uses, type, begin, implementation, private, public
и т.д. Впоследствии вы познакомитесь со всеми ключевыми словами, большинство которых выделяется жирным шрифтом. Сразу видно исключение — последнее в модуле end, после которого ставится точка, а не точка с запятой.
Итак, разберем структуру кода. В самом начале стоит имя модуля. Оно может быть любым, но таким же, как и имя файла (без учета его расширения). Изменять имя модуля вручную нежелательно. Если все же надо изменить, то сохраните сначала модуль со старым именем.
Для этого нужно выбрать команду меню: File | Save As (Файл | Сохранить как).
Желательно давать модулям понятные имена. В этом случае по имени можно определить, что находится внутри одноименного модуля. Трудно догадаться, что находится в файле под именем Unitl.pas. Файлам также желательно давать такие имена, которые связаны с их содержимым. Например, главную форму программы лучше сохранять в файле с именем MainUnit.pas или MainModule.pas.
В этом случае модуль и файл будут иметь имя MainUnit или MainModule, и вы можете сразу определить, что это главная форма.
Далее идет подключение глобальных модулей. Все процедуры, функции, константы описаны в каком-нибудь модуле, и прежде чем эти процедуры использовать, нужно его подключить. Вы можете знать о существовании какой-нибудь функции. Но чтобы об этом узнал компилятор, вы должны указать модуль, где описана эта функция, понятным для компилятора языком.
Например, вам надо превратить число в строку. Для этого в Delphi уже есть функция IntTostr. Она описана в модуле Sysutils. Если вы хотите воспользоваться этой функцией, вам надо подключить этот модуль к своему модулю Формы (напечатать название Sysutils в разделе uses).
Далее идёт описание типов данных, используемых в данном модуле. Сейчас здесь уже описан тип TForm1. Описание типа содержит разделы, определяющие структуру данных этого типа.
После объявления объекта и его составляющих идет описание глобальных переменных. Оно начинается после ключевого слова var и идет всегда после объявления типов. Это надо запомнить уже сейчас, потому что сначала идет раздел type, где описываются типы, а затем var, где описываются переменные.
Глобальные переменные — это переменные, которые хранятся в стеке, создаются при запуске программы и уничтожаются при выходе из программы. Это значит, что они доступны всегда и везде, пока запущена программа.
пример объявления глобальных переменных
var //Объявление глобальных переменных
Forml: TForml; //Это описана переменная Forml типа объекта TForml
В этом примере объявлена переменная Forml типа объекта TForml. Когда будет создан объект TForml, то его указатель будет записан в переменную Form1. Данная переменная глобальная и существует, пока программа выполняется, а значит, к ней всегда можно получить доступ.
Ключевое слово implementation тоже пока трогать не будем, а оставим на будущее, когда наши знания о Delphi немного расширятся. Последнее, что осталось рассмотреть в этой главе, — ключ .
Любой программный код в Delphi заключается между begin и end. Ключевое слово begin означает начало кода, a end — конец. Например, когда вы пишете процедуру, то сначала нужно написать ее имя (как это делать, мы поговорим позже), а потом заключить ее код между операторными скобками begin и end.
По материалам сайта О Delphi
Источник: delphi-manual.ru
Функции Delphi: описание, возможности, советы и рекомендации
Delphi — это проприетарная среда разработки (IDE) для Pascal в Windows. Она реализует объектно-ориентированную версию языка. Среда разработки базируется на графическом интерфейсе, связанного с редактором исходного кода функции Delphi. Язык программирования завоевал популярность благодаря простоте использования при разработке графических приложений и программ, связанных с базой данных.
Массивы — основа программирования
Borland Software Corporation в 1995 году выпустила преемника Turbo Pascal — Delphi, интегрированную среду разработки, использующую свой собственный диалект Object Pascal для облегчения приложений Windows. По сравнению с IDE, функции Delphi имели беспрецедентную поддержку баз данных, создавая многомерную среду, позволяющую программистам писать код быстрее и с меньшим количеством ошибок, чем когда-либо прежде.
Язык представлял собой универсальное средство для разработки приложений, включая редактор кода, визуальный дизайнер, который поддерживал кросс-платформенную разработку, интегрированный отладчик, механизм управления и поддержку сторонних плагинов. Редактор кода предложил разработчикам новые функции Delphi: анализ ошибок и рефакторинг.
Первоначально массив в Delphi-программе был статическим. Это означало, что его размер должен был быть известным во время написания кода.
В четвертой версии к языку были добавлены новые функции Delphi — динамические массивы, которые различались по размеру. Разработчику не нужно было объявлять размер при написании кода, и он мог программно изменять его, создавая ссылку, и, фактически, не выделяя память для содержимого.
В последней версии, прежде чем размещать данные, устанавливают длину при помощи удобной процедуры SetLength. Теперь, когда длина установлена, присваивают значения, аналогично тому, как это выполняется со статическим массивом функции Delphi. При этом динамические индексируются нулем.
Если в ходе работы программы нужно изменить размер — со статическими массивами это просто невозможно, а с динамическими — легко реализуемо. Для этого вызывают SetLength и используют вновь выделенные элементы в массиве. После того как размер изменен, оригинальные элементы по-прежнему находятся в нем и никакие данные не будут потеряны.
Статистические и динамические массивы
Статические массивы функции Delphi на самом деле являются просто указателями на непрерывную область памяти, которая была выделена для хранения нужного количества данных. Компилятор выполняет математические операции, чтобы превратить индекс в указатель на один элемент в массиве, а динамические, с другой стороны, добавляют уровень косвенности.
Autocom Delphi обзор сканера и программы
Чтобы объединить 2 строки символов, используют оператор «+». Пример: Hello + world будет реализовано, как Hello world.
Переменные и константы
Параметр представляет информацию и делает вызов функции Delphi в процедуре. Переменная — это часть данных, объявленная внутри функции и доступна исключительно в ней. Это локальное значение, изменяют так, как требуется разработчику. Есть глобальные переменные, доступные по всему dpr и проекту. Их следует использовать только в исключительных случаях.
При использовании переменной, ее объявляют во всех файлах, где она используется. Только переменные, переданные в качестве параметра Delphi функции и процедуры, не объявляются в той, где они применяются. Для объявления используют ключевое слово var. Они могут быть объявлены в .DPR или в процедурах файлов .pas.
Компонент TDBGrid Delphi является одной из жемчужин VCL. Разработанный таким образом, чтобы позволить пользователю просматривать и редактировать данные в табличной сетке, он предоставляет различные способы настройки способа представления данных. Например, добавление цвета в сетки базы данных улучшит внешний вид и разграничит важность определенных строк или столбцов в БД.
Delphi файлы
Delphi состоит из единиц, соответствующих исходных файлов и индексных карточек (форм), которые определяют графические интерфейсы. Таблица различных файлов, которые может понадобиться изменить, а также их назначение.
Чертеж формы, содержащий свойства графических компонентов
Файл проекта — это сердце приложения, связывает все различные файлы, содержащие код (.pas) с .DPR с функцией даты Delphi
Исходный файл, содержащий код приложения
Файл проекта, связанный с .DPR
Файл ресурсов Windows
Таблица файлов, генерированных после компиляции.
Файл проектной группы.
Файл, созданный во время компиляции, но не обязательный.
Исходный файл пакета.
Файл опций проекта.
Файл ресурсов Windows, он может содержать значки, растровые изображения, звуки.
Функция Pos
Функция POS Delphi возвращает целое число, указывающее позицию первого вхождения одной строки в другую. Это создается следующим образом. Pos ищет первое полное вхождение указанной строки. Обычно предлагается в одинарных кавычках в источнике. Источником является некоторая переменная.
Если Pos находит строку, он возвращает позицию символа в Source, а первого символа в Str, как целочисленного значения, в противном случае функция Delphi возвращает 0. String и Source будут строками. Старомодная функция Pos — наиболее распространенный способ поиска и всегда расположена в начале.
Обновленная функция Pos помогает решить эту проблему. Она ищет строчку s1 в s2 и возвращает ее позицию, как это делает старый Pos. Кроме того, можно определить начальную позицию и максимальную длину для поиска.
Импорт библиотечных функций
Для импорта подпрограмм библиотеки (.DLL) присоединяют директиву в виде: externalstringConstant, по-окончанию заголовка функций и процедур, где string Constant — имя библиотечного файла в кавычках. Есть возможность импортировать подпрограмму с другим названием. Для этого указывают оригинальное имя во внешней директиве:
External stringConstant1, namestringConstant2.
Где первый string Constant указывает имя библиотечного файла, а второй является исходным именем подпрограммы. Следующий оператор выполняет импорт функции из user32.dll. Первоначальное имя функции — MessageBoxA. Вместо имени можно использовать номер, чтобы идентифицировать подпрограмму для импорта:
Где integerConstant индекс подпрограммы в экспортной таблицы.
В декларации импорта обязательно следуют точному обозначению и регистру названия подпрограммы. Однако как только процедура импортируется, больше нет разницы между ними.
Пример создания одномерного массива
Допустим, нужно сформировать 3 одномерных массива для 50 членов общества разработчиков программного обеспечения. 1-й массив — имена, 2-й — электронная почта, а 3-й — число загрузок.
Любой из них имеет индексы и код, чтобы поддерживать все 3 перечня синхронно. Естественно, можно попробовать с одним массивом. Для этого необходимы строки имен и адресов почты, и целое число загрузок.
К примеру, последующее объявление организовывает тип записи с именем REMember, который можно применять в этом случае.
По сути, конструкция данных записи имеет возможность перемешивать всевозможные интегрированные типы Delphi, включая созданные. Записи обусловливают фиксированные коллекции компонентов различных типов. Любой элемент схож на переменную из имени и типа.
Тип функции Delphi Member охватывает 3 поля: строковое значение Name, eMail и целое число Posts. В последствии того, как будет установлен тип записи, можно объявить переменную Member. Она не выделяет памяти для имен, eMail и Posts. Для того чтобы практически создать запись Member, объявляют ее переменную.
Использование компонентов OnMouseOver
Код для событий OnMouseMove создают с компонентом TDBGrid, чтобы можно было найти строки и столбцы DBGrid (ячейки) в месте наведения курсора мыши. Если он расположен над сеткой, то срабатывает обработчик события OnMouseMove. Тогда используют метод MoveBy компонента DataSet, чтобы установить отображаемую текущую запись.
Равнозначный код используют для того, чтобы продемонстрировать место, где находится курсор мыши, и поменять его, когда он расположен над строкой заголовка. Для правильной установке активной записи требуется «взломать» DBGrid и получить доступ к защищенному свойству Row. Строки свойств TCustomDBGrid компонента содержат ссылку на текущие активные строки.
Много компонентов обладают полезными свойствами и методами, отмеченными как невидимые или защищенные разработчиками Delphi. Доступ к таким элементам обеспечивается применением простой техники, называемой «защищенный взлом».
Этот код при наведении указателем мыши на сетку выбирает запись, отображаемую в сетке «под» курсором. При этом не требуется нажимать на сетку, чтобы изменить существующую запись. OnDrawColumnCell событие используется для обработки необходимости настраиваемой графики для данных в ячейках.
Скиннинг Delphi Applications
Эти компоненты изменяют внешний вид приложений, добавляя темы и оболочки. Это простой способ улучшить графический интерфейс пользователя (GUI). VCLSkin — легкий в использовании компонент для создания графического интерфейса приложения Delphi. VCLSkin создаст тему или обложку для него без каких-либо изменений исходного кода.
Библиотека DynamicSkinForm VCL обеспечивает поддержку обложек для форм, меню, подсказок, а также многих стандартных и нестандартных оригинальных элементов управления.
У скинов есть много объектов и эффектов для крутых приложений, таких как WinAmp и iTunes. Специальный редактор позволяет пользователю настраивать скины. SkinAdapter является компонентом DynamicSkinForm, который позволяет создавать скины приложений без изменения исходного кода.
SUISkin предлагает автоматическое приложение с поддержкой скинов. С ним модификаций для существующих проектов не требуется. Просто перетаскивают компонент движка скина на основную форму и устанавливают некоторые свойства. Он будет автоматически обрабатывать все формы и диалоги. Файлы скинов могут быть скомпилированы в EXE-файл.
Во время выполнения можно легко переключать или выключать их.
Пакет разработки пользовательского интерфейса App Face — это решение для создания визуальных графических интерфейсов приложений, которые можно использовать в VC, VB.Net, Delphi, Visual Basic, C ++ Builder и Win32 SDK. Он включает в себя управление скинами, средство создания визуальных скинов, примеров исходного кода, а также технического руководство. Библиотека appface.dll, является компонентом ядра и может автоматически обработать все созданные окна в целевом приложении.
Преимущества среды программирования
Delphi, безусловно, зарекомендовала себя как одна из самых устойчивых сред программирования, меняющих форму и размер. Несмотря ни на что, он остается такими же гибкими, как кодовая база, из которой вышел.
Основания почему до сих пор используют Delphi:
- Четкий синтаксис, делающий код максимально читабельным.
- Механизм перетаскивания для реализации, позволяющий быстро создавать программное обеспечение GUI.
- Поддержка баз данных SQL.
- Поддерживает весь Windows API.
- Полно-объектно-ориентированное программирование.
- Совместим с C ++.
- Сильно адаптируемая среда VCL.
- Требуется минимальное обслуживание приложений.
Во время своего апогея, огромное сообщество, разработало массу высококачественного программного продукта в виде компонентов с процедурами и функциями Delphi, многие из которых полностью бесплатные и с открытым исходным кодом. Сегодня все это по-прежнему работает, только с одной проблемой — нехваткой опытных программистов на Delphi.
Источник: fb.ru
Среда разработки delphi
Delphi представляет разработчику interactive development environment (IDE)- интерактивную (диалоговую) среду разработки.
- текстовый редактор delphi с подсветкой служебных слов
- язык программирования Object Pascal
- сохранение результатов разработки
- подсказку по свойствам, методам и событиям объекта при написании оператора
- набор визуальных и невизуальных компонентов, собранных на панели инструментов в группы
- обеспечивает простую процедуру размещения компонент на форме
- автоматическое создание основногособытия компонента при двойном щелчке по компоненту, расположенному на форме
- изменение свойств компонента на этапе редактирования формы
- создание обработчиков событий для компонента
- создание заготовок модулей для DLL библиотек, невизуальных компонентов и модулей других типов
- пошаговая отладка кода
- просмотр значений переменных в процессе отладки
- компиляция и сборка программы в «.exe» файл
Также среда разработки Delphi (IDE) позволяет создавать исходный код программы, компилировать его и запускать на выполнение.
В процессе компиляции создаётся исполняемый файл «.exe».
После запуска IDE открывается ряд окон. В главном окне, имеющим вид длинной полосы, расположены несколько панелей.
Во первых, панель с главным меню редактора.
Далее панель с пиктографическим меню, кнопки которого дублируют пункты основного меню, которыми часто пользуются.
И, наконец, панель компонентов.
Кроме этого, будет открыто ещё несколько окон.
Окно главной формы программы
В программе может быть несколько форм, каждая из которых будет открыта в своём окне. Но только одна является главной. Закрытие главной формы приводит к остановке выполнения программы и закрытию всех остальных форм.
В программе может быть несколько форм, каждая из которых будет открыта в своём окне. Но только одна является главной. Закрытие главной формы приводит к остановке выполнения программы и закрытию всех остальных форм.
Главной будет та форма, которая в модуле проекта стоит первой в списке создаваемых форм.
Окно кода. Редактор delphi
В этом окне имеется несколько закладок. В каждой закладке располагается код одного модуля, имя которого значится на ярлыке закладки.
После открытия IDE отображаются закладка с кодом проекта Project1 и закладка с кодом модуля Unit1.
Если закладки с Project1 нет, то её можно открыть, используя пункт меню «Project» и в нём команду “View Source”.
При создании формы автоматически создается относящийся к ней модуль Unit.
Если создано несколько форм, то будет открыто несколько закладок с соответствующими модулями.
Кроме модулей, относящихся к формам, могут быть не связанные с формами модули. Например, содержащие DLL библиотеки.
Часто в Unit размещают объявление глобальных типов и переменных, доступных во всех других модулях.
Кроме того, если текст программы слишком большой, то часть процедур можно тоже разместить в отдельном модуле.
Инспектор объектов
Следующее окно содержит инспектор объектов (Object Inspector).
Если щёлкнуть по компоненту, расположенному на форме, то он окажется выбранным.
Выбранный компонент отобразится в инспекторе объектов.
На вкладке Properties (свойства) отобразится список всех свойств компонента, которые могут быть изменены на этапе разработки.
Например, Для компонента Edit можно изменить свойство Text, записав в него новое значение или просто удалив старое. После нажатия клавиши “Enter” это значение отобразится на компоненте (или после щелчка по другому свойству).
События в delphi
Вторая вкладка в Object Inspector задаёт связанные с компонентом обработчики событий (Events).
Обработчики событий — это процедуры, которые выполняются при наступлении события.
Событием может быть щелчок мыши по компоненту, нажатие клавиши на клавиатуре (если компонент имеет фокус ввода; например, в поле Edit мигает курсор), нажатие на кнопку, нахождение курсора мыши над компонентом и многое другое, с чем мы будем знакомиться по мере продвижения.
У каждого визуального компонента имеется одно «основное, главное» событие. Его обработчик создаётся при двойном щелчке по компоненту.
Например, для кнопки это Button1Click()
Ещё одно окно содержит панель с «деревом» компонентов (Object TreeWiew). Его использование бывает полезным, когда на форме располагается большое количество компонент.
Окно с кодом программы и модулей (вкладки Project1, Unit1 и так далее) мы ознакомимся в следующем занятии.
Заключение.
В этом занятии мы рассмотрели основные элементы среды разработки Delphi, познакомились с инспектором объектов и узнали, как обрабатываются события в delphi.
Ввели понятие главного окна программы, научились управлять свойствами компонента.
Глоссарий.
- IDE
- Свойства, методы, события объекта
- Панель инструментов IDE
- Основное (главное) событие компонента
- Обработчик события
- Пошаговая отладка
- Исполняемый файл
- Главная форма
- Окно редактора кода
- Инспектор объектов
- Свойства
- События
- Дерево объектов
Источник: programlife.ru