Рижский Технический университет Даугавпилсский филиал Среда программирования Delphi (учебное пособие) Даугавпилс 2005. Введение Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую "быструю разработку", среди которых можно выделить Borland Delphi и Microsoft Visual Basic. В основе систем быстрой разработки (RAD-систем, Rapid Application Development — среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий. Borland Delphi — это среда быстрой разработки, в которой в качестве языка программирования используется язык Object Pascal. Borland Delphi позволяет создавать самые различные программы: от простейших однооконных приложений до программ управления распределенными базами. Borland Delphi может работать в среде операционных систем от Windows 98 до Windows XP. Особых требований, по современным меркам, к ресурсам компьютера пакет не предъявляет: процессор должен быть типа Pentium или Celeron с тактовой частотой не ниже 166 МГц (рекомендуется Pentium II 400 МГц), оперативной памяти - 128 Мбайт (рекомендуется 256 Мбайт), достаточное количество свободного дискового пространства (для полной установки версии Enterprise необходимо приблизительно 475 Мбайт). Это учебное пособие по программированию на языке Delphi в одноименной среде. Цель этого пособия – научить программировать в среде Delphi, т. е. создавать законченные программы различного назначения. Научиться программировать можно только программируя, решая конкретные задачи. При этом достигнутые в программировании успехи в значительной степени зависят от опыта. Поэтому, чтобы получить максимальную пользу от пособия, вы должны работать с ней активно. Не занимайтесь просто чтением примеров, реализуйте их с помощью вашего компьютера. Не бойтесь экспериментировать — вносите изменения в программы. Чем больше вы сделаете самостоятельно, тем большему вы научитесь! 1. Среда программирования Описание версии. среды программирования Delphi 6 – панели инструментов 1 – главное меню 2 – форма 4 – просмотрщик дерева объектов осуществляется на примере седьмой 7 – палитра компонентов 3 – редактор кода 5 – инспектор объектов Рис. 1. Среда программирования Delphi7. Среда программирования Delphi гибко настраивается программистом по своему усмотрению. Все панели могут быть перемещены в любое место экрана, для этого достаточно перетащить их мышью. Но обычно программисты пользуются такой конфигурацией среды, которую предлагает Borland. 1.1. Главное меню. На панели «Главное меню» находятся: само меню, кнопки быстрого вызова и палитра компонентов. Рассмотрим по порядку все 11 пунктов главного меню: File. Этот пункт меню имеет следующие команды: New – с помощью этой команды можно создавать новый проект, вставлять форму в существующий проект и многое еще другое; Open – позволяет открывать любые файлы, которые поддерживаются Delphi. Чаще всего эта команда используется для открытия существующих проектов; Open Project – пункт меню, почти такой же, как и предыдущий, только позволяет открывать не формы, PAS-файлы и т.д., а конкретно Delphi-проекты. Эта команда дублируется сочетанием клавиш Ctrl+F11; Reopen – быстро открывает один из проектов, с которым недавно работали: Save (Ctrl+S) – сохраняет редактируемый файл; Save As – сохраняет редактируемый файл, но при этом его можно сохранить под другим именем; Save Project As – сохраняет весь проект под новым именем или в другой каталог; Save All (Shift+Ctrl+S) – сохраняет все файлы проекта; Close – закрывает редактируемый файл; Close All – закрывает проект. Можно использовать эту команду, чтобы перейти к редактированию другого проекта без перезагрузки Delphi; Use Unit (Alt+F11) – позволяет перейти к использованию нужного модуля; Print – печать на принтере; Exit – закрытие Delphi. Edit. Этот пункт меню имеет следующие команды: Undo (Ctrl+Z) – позволяет отменить последнее действие, выполненное в редакторе кода; Redo (Shift+Ctrl+Z) – повторить отмененное действие; Cut (Ctrl+X) – вырезать в буфер обмена выделенный объект или текст; Copy (Ctrl+C) – скопировать в буфер обмена выделенный объект или текст; Paste (Ctrl+V) – вставить из буфера объект или текст, который там находится; Delete – удалить выделенный объект или текст; Select All (Ctrl+A) – выделить весь текст; Align To Grid – команда, позволяющая автоматически выровнять выделенный компонент по сетке; Bring To Front – эта команда выводит закрываемый компонент на передний план; Send To Back – команда, обратная Bring To Front; Align – перемещает выделенный компонент в нужное место формы; Size – дает возможность изменить изменить размеры выделенного компонента; Scale – позволяет изменить размер компонента на нужное количество процентов; Tab Order – редактирование последовательности обхода компонентов с помощью клавиши Tab, при нажатии которой фокус переходит с одного компонента на другой; Lock Controls – блокирует компоненты, после чего невозможно изменить их размеры и расположение. Search. Этот пункт меню имеет следующие команды: Find (Ctrl+F) – поиск фрагмента текста в редакторе кода; Find In File – поиск в файлах; Replace (Ctrl+R) – поиск и замена текста; Search (F3) – искать текст дальше; Go To Line Number (Alt+G) – перейти к строке с нужным номером. View. Этот пункт меню имеет следующие команды: Project Maneger (Ctrl+Alt+F11) – открывает одноименное окно; Object Inspektor – открытие окна Object Inspektor или переход к нему, если окно скрыто; Object Inspektor (Shift+Alt+F11) – переход к одноименному окну; Browser (Shift+Ctrl+B) – показывает иерархию классов; Code Explorer – переход к окну редактора кода; Component List – окно со списком всех компонент; Windows List – окно со списком всех окон; Debug Windows – окна, с помощью которых проще отлаживать программу; Desktops – можно сохранить настройки интерфейса и потом вернуться к ним; Toggle Form/Unit (F12) – переключение с окна формы на окно редактора кода; Units (Ctrl+F12) – список файлов проекта; Forms (Shift+F12) – список форм проекта; Toolbars – включение и выключение отображения панелей на экране. Project. Этот пункт меню имеет следующие команды: Add To Project (Shift+F11) – добавление файла в проект; Remove From Project – удаление файла из проекта; Add New Project – добавление нового проекта; Add Existing Project – добавление существующего проекта; Compile (Ctrl+F9) – компиляция проекта; Build All Projects – компиляция всех проектов; Options (Shift+Ctrl+F11) – параметры проекта. Run. Этот пункт меню имеет следующие команды: Run (F9) – запуск программы на выполнение; Attach To Process – позволяет подключиться к выполняемому процессу и отладить его; Register ActiveX Server – регистрирует ActiveX-сервер в операционной системе; Unregister ActiveX Server – удаляет регистрацию ActiveX-сервера из операционной системе; Step Over (F8) – построчное выполнение программы. Если встречается процедура или функция, то ее построчное выполнение не выполняется; Trace Into (F7) – построчное выполнение программы. Если встречается процедура или функция, то и она выполняется построчно; Run To Cursor (F4) – запуск программы на выполнение и остановка в той строке, где установлен текстовый курсор. После этого можно выполнять программу построчно (F7 или F8) или перейти к другой строке. В режимах Step Over, Trace Into, Run To Cursor можно расположить указатель мыши над любой переменной и просматривать ее значение в данный момент времени; Program Pause – временное прерывание программы; Program Reset (Ctrl+F2) – немедленное прекращение программы и возврат к ее редактированию; Add Watch (Ctrl+F5) – открыть окно Watch List для наблюдения за переменными при выполнении программы; Add Breakpoint – добавить точку останова. Выполнение программы остановится на строке с такой точкой. Точку останова можно также добавить/убрать, щелкнув мышью на левом поле в редакторе кода; Component. Этот пункт меню имеет следующие команды: New Component – создание нового компонента; Install Component – установка компонента; Import AcniveX Control – импортирование AcniveX - компонента; Install Packages – установка пакета компонентов; Configure Palette – настройка палитры компонентов; Database. Команды для работы с базами данных: Explore – открывает окно SQL Explorer; SQL Monitor – открывает одноименное окно; Form Wizard – мастер создания формы для скелета приложения, работающего с базами данных; Tools. Этот пункт меню имеет следующие команды: Environment Options – открывает одноименное окно, позволяющее более точно настроить среду разработки Delphi на свой вкус; Editor Options – открывает окно с параметрами редактора кода; Debugger Options – окно с параметрами отладчика; Translation Tools Options – параметры мастера создания многоязыковых программ; Database Desktop – открывает одноименное приложение; Image Editor – открывает окно, с помощью которого можно создавать логотипы своих программ; Window. Этот пункт меню позволяет выводить на экран то или иное ранее открытое окно. Help. Этот пункт меню имеет следующие команды: Delphi Help – вызов системы помощи. В открывающемся окне находятся 3 вкладки: Содержание, Указатель, Поиск; Delphi Tools – окно помощи сразу открывается на вкладке Содержание. 1.2. Панели инструментов. Сразу под меню располагаются панели с кнопками. Сюда вынесены наиболее часто используемые команды меню. Если подвести указатель мышки к какой-либо кнопке, то всплывающая подсказка сообщит о назначении кнопки. Первая панель (слева направо): New Items – новый файл (проект, форма, компонент и т.д.); Open – открыть файл. Если нажать на стрелку рядом с данной кнопкой, то можно перейти к одному из недавно открывающихся файлов; Save – сохранить файл; Save All – сохранить все; Open Project – открыть проект; Add file to project – добавить внешний файл в проект; Remove file from project – удалить файл из проекта. Вторая панель: Help Contents – помощь. Третья панель (слева направо): View Unit – просмотреть список файлов проекта; View Form – просмотреть список форм проекта; Toggle Form/Unit – переключение с окна формы на окно редактирования текста программы и обратно; New Form – создание новой формы и автоматическое добавление ее в проект. Четвертая панель (слева направо): Run – запуск программы; Pause – пауза в выполнении запущенной программы; Trace into – построчное выполнение программы, включая процедуры и функции; Step over – построчное выполнение программы, исключая процедуры и функции. 1.3. Палитра компонентов. Некоторые из компонент являются контейнерами, это означает, что на них могут размещаться другие компоненты. Самым главным контейнером является форма. Здесь описываются не все компоненты, а только основные. Компоненты разбиты по вкладкам. Вкладка Standard. Эта вкладка содержит следующие компоненты: Main – используется для создания меню в программе. Это то меню, которое размещается под заголовком окна; PopupMenu – всплывающее меню, вызываемое правой кнопкой мыши; Label – этикетка, служит для вывода текстовой информации; Edit – в основном предназначен для ввода информации; Memo – простейший текстовый редактор; Button – кнопка, используется для управления работой программы; CheckBox – флажок. Может находиться в трех состояниях: отмечен, не отмечен и не активен. Рядом с флажком может выводиться текст (вопрос или комментарий); RadioButton – переключатель. Это средство выбора, одновременно в одном контейнере может быть только один отмеченный переключатель; ListBox – список текстовых строк. Можно выбирать одну или несколько строк; ComboBox – раскрывающийся список строк; ScrollBar – полоса прокрутки. Может быть вертикальной и горизонтальной; GroupBox – панель для группировки компонентов; RadioGroup – панель для отображения нескольких переключателей; Panel – контейнер. Вкладка Additional. Эта вкладка содержит следующие компоненты: BitBtn – кнопка, которая может принимать несколько стандартных образов; SpeedButton – кнопка, на которую можно загрузить изображение; MaskEdit – компонент для ввода текста по маске (шаблону), которую задает программист; StringGrid – электронная таблица, подобная таблице в Excel; Image – графическое изображение; Shape – компонент для отображения простейших геометрических фигур; CheckListBox – выглядит как ListBox, но в каждой строке может стоять флажок; StaticText – выполняет функцию отображения текста; ControlBar – панель, на которой можно разместить кнопки SpeedButton; LabelEdit – компонент, обладающий свойствами компонент Label и Edit; Вкладка Win32. Эта вкладка содержит следующие компоненты: TabControl – панель с вкладками, контейнер; ImageList – этот компонент не отображается в процессе выполнения программы, он необходим для хранения изображений; RichEdit – аналогичен компоненту Memo, но может работать не только с текстовыми файлами, но и с файлами RTF. Позволяет менять отдельно для каждого символа; ProgressBar – показывает процесс выполнения в виде полоски из квадратиков; UpDown – привязывается к текстовому полю и позволяет изменять числовые значения с помощью кнопок «больше» и «меньше»; DateTimePicker – календарь. Можно использовать как для наглядного отображения, так и для удобного изменения дат; StatusBar – строка состояния, располагающаяся внизу окна. В ней удобноразмещать какие-нибудь сообщения; ToolBar – специальная панель инструментов для кнопок. Вкладка System. Эта вкладка содержит следующие компоненты: ColorBox – компонент для выбора цвета; Chart – компонент для отображения диаграмм. Timer – таймер. Не отображается в процессе выполнения программы и создает события OnTimer с указанной периодичностью; MediaPlayer – проигрыватель звука. Его можно сделать невидимым, но звук все равно будет; Вкладка Dialogs. Эта вкладка содержит следующие компоненты: OpenDialog – выбор открываемого файла; SaveDialog – окно сохранения файла; OpenPictureDialog – открытие изображения; SavePictureDialog – сохранение изображения; FontDialog – выбор шрифта; CjljrDialog – выбор цвета; PrintDialog – выбор принтера и параметров печати; PrinterSetupDialog – настройка печати; FindDialog – стандартное окно поиска фрагмента текста; ReplaceDialog – поиск и замена фрагментов текста. 1.4. Окно Object TreeView. В этом окне четко видна структура приложения – какие формы и компоненты входят в приложение и где они располагаются. С помощью этого окна можно активизировать любые компоненты, даже если они скрыты под под другими компонентами. Для этого достаточно щелкнуть мышкой на его названии. 1.5. Окно Object Inspector. С помощью этого окна осуществляются изменения свойств всех компонентов в процессе визуального программирования. Кроме того, это окно позволяет назначать событиям процедуры обработки событий. У этого окна имеются две вкладки (Properties и Events) и раскрывающийся список, в котором можно выбрать нужный компонент. Если активна вкладка Properties, то слева находятся названия свойств компонента, а справа – возможные их значения. Обработчик события назначается просто. Перейдя на вкладку Events, выбрав нужное событие, необходимо сделать двойной щелчок на пустом поле справа в этой же строке. При этом откроется окно редактора кода и в нем появится шаблон процедуры обработчика события. 1.6. Окно редактирования вида формы. Вид окна и свойства формы (размеры, расположение на экране, цветовая палитра и др.) устанавливаются с помощью окна Object Inspector и будут иметь такой же вид и при выполнении программы. На форму можно помещать любые компоненты из палитры компонентов. 1.7. Окно редактора кода. Именно в этом окне осуществляется создание и редактирование текста (кода) программы. 2. Структура программы. 2.1. Файлы, используемые в среде программирования Delphi. При создании проекта, даже если не написано ни строчки кода программы, автоматически создаются несколько исходных файлов. Все исходные файлы программы можно разделить на два типа: файлы проекта и файлы форм. Имена таких файлов совпадают с названием проекта, а по расширению (по символам, следующим после названия файла и точки) можно судить о назначении файла: dpr (Delphi Project) – основной файл проекта. В нем содержатся инструкции, которые, как правило, запускают другие модули; dof (Delphi Option File) и cfg (project ConFiGuration file) – файлы конфигурации проекта. Здесь содержатся текущие параметры проекта, такие как версия Delphi, настройки компилятора и компоновщика, директории, директивы компилятора и параметры командной строки. Чтобы изменить параметры, хранящиеся в этих файлах, нужно открыть окно Project Options, выбрав в меню Project ►Options; res – этот файл хранит информацию о версии и значок программы. Файл может так же содержать и другие ресурсы, используемые в проекте. Обычно при формировании нового проекта создается и одна форма. Поэтому в проекте присутствуют файлы формы: dcu ( Delphi Compiled Unit) – содержит скомпилированный код модуля (формы); dfm (Delphi Form File) – хранит все, что касается формы: содержащиеся на ней компоненты и их свойства, а также свойства самой формы; 2.2. pas – файл модуля (Unit) с текстом программы на языке Object Pascal. Структура PAS-файла. Каждая программа, написанная на Delphi, состоит из одного DPR-файла и одного или нескольких PAS-файлов. В файле с расширением PAS можно выделить следующие стандартные блоки: заголовок – название модуля. В конце должна стоять точка с запятой; interface – секция интерфейсных объявлений. Чтобы типы, константы, переменные, процедуры и функции были доступны всем модулям в проекте, они должны быть объявлены здесь; uses – раздел описания подключаемых модулей. При создании нового проекта Delphi автоматически подключает все минимально необходимые модули. Модули перечисляются через запятую, а после последнего модуля ставится точка с запятой; type – раздел описания типов. Здесь описываются классы формы (форм) и типы пользователя; const – раздел описания констант; var – раздел описания переменных; procedure и (или) function – раздел описания заголовков процедур и (или) функций, которые будут использоваться в проекте; implementation – ключевое слово; uses – раздел описания подключаемых модулей, вызываемых из данного модуля; type, const, var, procedure, function – раздел описания типов, констант, переменных, процедур и функций, доступных только данному модулю; {$R *.DFM} – директивы компилятора; непосредственно программа, состоящая из процедур и функций; end. – ключевое слово, называемое терминатором. 2.3. Требования к тексту программы. В языке программирования Object Pascal все строки должны заканчиваться точкой с запятой. Последней строкой программы (модуля) должна быть такая: end. Точка с запятой не ставится только после некоторых ключевых слов: interface, implementation, var, const, type, begin и команд компилятору. Язык программирования не различает строчные и прописные буквы. Можно набирать текст программы, поставив на первое место удобочитаемость. Любая программа должна сопровождаться комментариями. Существуют два способа вставки комментария: текст комментария заключается в фигурные скобки, например, {текст комментария}, текст комментария находится после символов // , например, // текст комментария (этот способ применяется для комментирования одной строки.