Инфоурок Информатика Другие методич. материалыМетодическое пособие "Занимательное программирование в Delphi"

Методическое пособие "Занимательное программирование в Delphi"

Скачать материал

 

 

 

 

 

 

 

Занимательное программирование

на Delphi

Учебное пособие

Часть I

 

 

 


 

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

·        использовании Windows

·        простейших программных конструкциях  таких, как переменные, циклы и функции.

В пособии подробно описана среда Delphi: окна, компоненты и т.д. В практической части пособия даны алгоритмы действия для создания программ.

Книга может быть использована для самообразования всеми желающими освоить язык программирования Delphi

 


 

Содержание

 

 

Общая структура Среды Delphi

Основные элементы

Дополнительные элементы

Инструментальные средства

Стандартные компоненты

Инспектор объектов

Сохранение проекта

Практические работы

 

4

4

7

8

9

11

13

16

 

 

 

 

 


Структура среды программирования

 

         Внешний вид среды программирования Delphi отличается от многих других из тех, что можно увидеть в Windows. К примеру, Borland Pascal for Windows 7.0, Borland C++ 4.0, Word for Windows,  Program Manager - это все MDI приложения и выглядят по-другому, чем Delphi. MDI (Multiple Document Interface) - определяет особый способ управления нескольких дочерних окон внутри одного большого окна.

         Среда Delphi же следует другой спецификации, называемой Single Document Interface (SDI), и состоит из нескольких отдельно расположенных окон.  Это было сделано из-за того, что SDI близок к той модели приложений, что используется в Windows 95.

 

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

 

Главные составные части среды программирования

Ниже перечислены основные составные части Delphi:

1.      Дизайнер Форм (Form Designer)

2.      Окно Редактора Исходного Текста (Editor Window)

3.      Палитра Компонент (Component Palette)

4.      Инспектор Объектов (Object Inspector)

5.      Справочник (On-line help)

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

Программисты на Delphi проводят большинство времени переключаясь между Дизайнером Форм и Окном Редактора Исходного Текста (которое для краткости называют Редактор). Прежде чем Вы начнете, убедитесь, что можете распознать эти два важных элемента. Дизайнер Форм показан на рис.1, окно Редактора - на рис.2.

Рис.1: Дизайнер Форм - то место, где Вы создаете визуальный интерфейс программы.

 

 

 

 

Рис.2: В окне Редактора Вы создаете логику управления программой.

 

 
 

 

 

 

 

 


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

Несмотря на всю важность Дизайнера Форм, местом, где программисты проводят основное время является Редактор. Логика является движущей силой программы и Редактор - то место, где Вы ее “кодируете”.

Палитра Компонент (см. рис.3) позволяет Вам выбрать нужные объекты для размещения их на Дизайнере Форм. Для использования Палитры Компонент просто первый раз щелкните мышкой на один из объектов и потом второй раз - на Дизайнере Форм. Выбранный Вами объект появится на проектируемом окне и им можно манипулировать с помощью мыши.

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

 


Рис.3: Палитра Компонент - место, где Вы выбираете объекты, которые будут помещены на вашу форму.

 

Предположим, Вы помещаете компонент TEdit на форму; Вы можете двигать его с места на место. Вы также можете использовать границу, прорисованную вокруг объекта для изменения его размеров. Большинством других компонент можно манипулировать тем же образом. Однако, невидимые во время выполнения программы компоненты (типа TMenu или TDataBase) не меняют своей формы.

         Слева от Дизайнера Форм Вы можете видеть Инспектор Объектов (рис.4). Заметьте, что информация в Инспекторе Объектов меняется в зависимости от объекта, выбранного на форме. Важно понять, что каждый компонент является настоящим объектом и Вы можете менять его вид и поведение с помощью Инспектора Объектов.

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

К примеру, Вы можете изменить имя и размер компонента TLabel изменяя свойства Caption, Left, Top, Height, и Width.

 

Рис.4: Инспектор Объектов позволяет определять свойства и поведение объектов, помещенных на форму

 
 


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

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

         Последняя важная часть среды Delphi - Справочник (on-line help). Для доступа к этому инструменту нужно просто выбрать в системном меню пункт Help и затем Contents. На экране появится Справочник, показанный на рис.5.

 

 

Рис.5: Справочник - быстрый поиск любой информации.

 

Справочник является контекстно-зависимым; при нажатии клавиши F1, Вы получите подсказку, соответствующую текущей ситуации. Например, находясь в Инспекторе Объектов, выберите какое-нибудь свойство и нажмите F1 - Вы получите справку о назначении данного свойства. Если в любой момент работы в среде Delphi возникает неясность или затруднение - жмите F1  и необходимая информация появится на экране. 

Дополнительные элементы

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

 

         Меню (Menu System)

·        Панель с кнопками для быстрого доступа (SpeedBar)

·        Редактор картинок (Image Editor)

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

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

 

Рис.6: SpeedBar находится слева от Палитры Компонент.

 

Редактор Картинок, показанный на рис.7, работает аналогично программе Paintbrush из Windows. Вы можете получить доступ к этому модулю выбрав пункт меню Tools | Image Editor.

 

Рис.7: Редактор Картинок можно использовать для создания картинок для кнопок, иконок и др. визуальных частей для программы.

            А теперь нужно рассмотреть те элементы, которые программист на Delphi использует в повседневной жизни.

Инструментальные средства

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

         Встроенный отладчик

         Внешний отладчик (поставляется отдельно)

         Компилятор командной строки

         WinSight

         WinSpector

Данные инструменты собраны в отдельную категорию не потому, что они менее важны, чем другие, но потому, что они играют достаточно абстрактную техническую роль в программировании.

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

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

Теперь давайте поговорим о компиляторах. Внешний компилятор, называется DCC.EXE, полезен, в основном, если Вы хотите скомпилировать приложение перед отладкой его во внешнем отладчике. Большинство программистов, наверняка, посчитают, то гораздо проще компилировать в среде Delphi, нежели пытаться создать программу из командной строки. Однако, всегда найдется несколько оригиналов, которые будут чувствовать себя счастливее, используя компилятор командной строки. Но это факт - возможно создать и откомпилировать программу на Delphi используя только DCC.EXE и еще одну программу CONVERT.EXE, которая поможет создать формы. Однако, данный подход неудобен для большинства программистов.

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

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

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

 

Стандартные компоненты

 

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

         На первой странице Палитры Компонент размещены 14 объектов

(рис.8) определенно важных для использования. Мало кто обойдется длительное время без кнопок, списков, окон ввода и т.д. Все эти объекты  такая же часть Windows, как мышь или окно.

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

Рис.8: Компоненты, расположенные на первой странице Палитры.

 

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

TMainMenu  позволяет Вам поместить главное меню в программу. При помещении TMainMenu на форму это выглядит, как просто иконка. Иконки данного типа называют "невидимыми компонентом", поскольку они невидимы во время выполнения программы. Создание меню включает три шага: (1) помещение TMainMenu на форму, (2) вызов Дизайнера Меню через свойство Items в Инспекторе Объектов, (3) определение пунктов меню в Дизайнере Меню.

TPopupMenu  позволяет создавать всплывающие меню. Этот тип меню появляется по щелчку правой кнопки мыши.

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

TEdit - стандартный управляющий элемент Windows для ввода. Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы.

TMemo -  иная форма TEdit. Подразумевает работу с большими текстами. TMemo может переносить слова, сохранять в Clipboard фрагменты текста и восстанавливать их, и другие основные функции редактора. TMemo имеет ограничения на объем текста в 32Кб, это составляет 10-20 страниц. (Есть VBX и “родные” компоненты Delphi, где этот предел снят).

TButton  позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. В Delphi все делается очень просто. Поместив TButton на форму, Вы по двойному щелчку можете создать заготовку обработчика события нажатия кнопки. Далее нужно заполнить заготовку кодом (подчеркнуто то, что нужно написать вручную):

 

 

procedure TForm1.Button1Click(Sender: TObject);

begin

MessageDlg('Are you there?',mtConfirmation,mbYesNoCancel,0);

end;

 

 

  TCheckBox отображает строку текста с маленьким окошком рядом.   В окошке можно поставить отметку, которая означает, что что-то выбрано. Например, если посмотреть окно диалога настроек компилятора (пункт меню  Options | Project, страница Compiler), то можно увидеть, что оно состоит преимущественно из CheckBox’ов.

TRadioButton позволяет выбрать только одну опцию из нескольких.  Если Вы опять откроете диалог Options | Project и выберете страницу Linker Options, то Вы можете видеть, что секции Map file и Link buffer file состоят из наборов RadioButton.

TListBox  нужен для показа прокручиваемого списка. Классический пример ListBox’а в среде Windows - выбор файла из списка в пункте меню  File | Open многих приложений. Названия файлов или директорий и находятся в ListBox’е.

TComboBox во многом напоминает ListBox, за исключением того, что позволяет водить информацию в маленьком поле ввода сверху ListBox. Есть несколько типов ComboBox, но наиболее популярен выпадающий вниз (drop-down combo box), который можно видеть внизу окна диалога выбора файла.

TScrollbar - полоса прокрутки, появляется автоматически в объектах редактирования, ListBox’ах при необходимости прокрутки текста для просмотра.

TGroupBox используется для визуальных целей и для указания Windows, каков порядок перемещения по компонентам на форме (при нажатии клавиши TAB).

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

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

Это полный список объектов на первой странице Палитры Компонент. Если Вам нужна дополнительная информация, то выберите на Палитре объект и нажмите клавишу F1 - появится Справочник с полным описанием данного объекта.

 

Инспектор Объектов

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

Лучший путь для изучения Инспектора объектов - поработать с ним. Для начала откройте новый проект, выбрав пункт меню File | New Project. Затем положите на форму объекты TMemo, TButton, и TListBox, как показано на рис.9.

Рис.9: Простой объект TForm с компонентами TMemo, TButton, и TListBox.

 

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

         Вернитесь на форму и поставьте значение Ctl3D в True. Теперь нажмите клавишу <Shift> и щелкните на TMemo и затем на TListBox. Теперь оба объекта имеют по краям маленькие квадратики, показывающие, что объекты выбраны.

 

Рис.10: Пункт меню Edit дает Вам доступ к двум диалогам для выравнивания выбранного набора компонент. Первый диалог - управление размерами объектов в наборе.

 

 

 

 

Выбрав два или более объектов одновременно, Вы можете выполнить большое число операций над ними. Например, передвигать по форме. Затем попробуйте выбрать пункт меню Edit | Size и установить оба поля Ширину(Width) и Высоту(Height) в Grow to Largest, как показано на рис.10. Теперь оба объекта стали одинакового размера. Затем выберите пункт меню Edit | Align и поставьте в выравнивании по горизонтали значение Center (см. рис.11).

Рис.11: Диалог Alignment помогает выровнять компоненты на форме.

 

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

         Рассмотрим изменение свойств объектов на примере свойства Color. Есть три способа изменить его значение в Инспекторе Объектов. Первый - просто напечатать имя цвета (clRed) или номер цвета. Второй путь - нажать на маленькую стрелку справа и выбрать цвет из списка. Третий путь - дважды щелкнуть на поле ввода свойства Color. При этом появится диалог выбора цвета.

Свойство Font работает на манер свойства Color. Чтобы это посмотреть, сначала выберите свойство Font для объекта TMemo и дважды щелкните мышкой на поле ввода. Появится диалог настройки шрифта, как показано на рис.12. Выберите, например, шрифт New Times Roman и установите какой-нибудь очень большой размер, например 72. Затем измените цвет фонта с помощью ComboBox’а в нижнем правом углу окна диалога. Когда Вы нажмете кнопку OK, Вы увидите, что вид текста в объекте TMemo радикально изменился.

 

Рис.12: Диалог выбора шрифта позволяет Вам задать тип шрифта, размер, и цвет.

 

 

 

 

 

 

 

 

 

 

 

 

В завершение краткого экскурса по Инспектору Объектов дважды щелкните на свойство Items объекта ListBox. Появится диалог, в котором Вы можете ввести строки для отображения в ListBox. Напечатайте несколько слов, по одному на каждой строке, и нажмите кнопку OK. Текст отобразится в ListBox’е.

 

Сохранение программы

 

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

         Первый шаг создать поддиректорию для программы. Лучше всего создать директорию, где будут храниться все Ваши программы и в ней - создать поддиректорию для данной конкретной программы. Например, Вы можете создать директорию MYCODE и внутри нее - вторую директорию TIPS1, которая содержала бы программу, над которой Вы только что работали.

         После создания поддиректории для хранения Вашей программы нужно выбрать пункт меню File | Save Project. Сохранить нужно будет два файла. Первый - модуль (unit), над которым Вы работали, второй - главный файл проекта, который "владеет" Вашей программой. Сохраните модуль под именем MAIN.PAS и проект под именем TIPS1.DPR. (Любой файл с расширением PAS и словом “unit” в начале является модулем.)

TButton, исходный текст, заголовки и Z-упорядочивание

Еще несколько возможностей Инспектора Объектов и Дизайнера Форм.

Создайте новый проект. Поместите на форму объект TMemo, а затем TEdit так, чтобы он наполовину перекрывал TMemo, как показано на рис.13. Теперь выберите пункт меню Edit | Send to Back, что приведет к перемещению TEdit вглубь формы, за объект TMemo. Это называется изменением Z-порядка компонент. Буква Z используется потому, что обычно математики обозначают третье измерение буквой Z. Так, X и Y используются для обозначения ширины и высоты, и Z используется для обозначения глубины.

 

Рис.13: Объект TEdit перекрывается наполовину объектом TMemo.

 

 

 

 

 

 

 

 

 

 

 

Если Вы “потеряли” на форме какой-то объект, то найти его можно в списке Combobox’а, который находится в верхней части Инспектора Объектов.

         Поместите кнопку TButton в нижнюю часть формы. Теперь растяните Инспектор Объектов так, чтобы свойства Name и Caption были видны одновременно на экране. Теперь измените имя кнопки на Terminate. Заметьте, что заголовок (Caption) поменялся в тот же момент. Такое двойное изменение наблюдается только если ранее не изменялось свойство Caption.

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

 

 

    TForm1 = class(TForm)

      Edit1: TEdit;

 

 Memo1: TMemo;

 

      Terminate: TButton;

      private

       { Private declarations }

      public

       { Public declarations }

    end;

 

         В этом фрагменте кнопка  TButton называется Terminate из-за того, что Вы присвоили это название свойству Name. Заметьте, что TMemo имеет имя, которое присваивается по умолчанию.

         Перейдите на форму и дважды щелкните мышкой на объект TButton. Вы сразу попадете в окно Редактора, в котором увидите фрагмент кода вроде этого:

 

procedure TForm1.TerminateClick(Sender: TObject);

 

begin

 

end;

        

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

 

  TForm1 = class(TForm)

    Edit1: TEdit;

    Memo1: TMemo;

    Terminate: TButton;

    procedure TerminateClick(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

 

  end;

 

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

         Теперь самое время написать строчку кода. Это очень простой код, состоящий из одного слова Close:

 

procedure TForm1.TerminateClick(Sender: TObject);

begin

  Close;

end;

 

         Когда этот код исполняется, то главная форма (значит и все приложение) закрывается. Для проверки кода запустите программу и нажмите кнопку Terminate. Если все сделано правильно, программа закроется и Вы вернетесь в режим дизайна.

 

         Прежде, чем перейти к следующему разделу, перейдите в Инспектор Объектов и измените значение свойства Name для кнопки на любое другое, например OK. Нажмите Enter для внесения изменений. Посмотрите в Редактор, Вы увидите, что код, написанный Вами изменился:

 

procedure TForm1.OkClick(Sender: TObject);

begin

  Close;

end;

         Заметьте, что аналогичные изменения произошли и в определении класса:

     

  TForm1 = class(TForm)

    Edit1: TEdit;

    Memo1: TMemo;

    Ok: TButton;

 

    procedure OkClick(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;


Практическая работа 1. Элементы интерфейса Delphi.

Общие положения

Delphi- интегрированная среда разработки.

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

В Delphi имеются 10 окон, но после загрузки появляются четыре окна (рис.1):

§     главное окно Delphi* - имя проекта;

§     окно формы для проектирования приложения Form 1

§     окно инспектора объектов Object Inspector;

§     окно редактора кода Unit1.pas.


 

В главном окне реализуются основные функции управления проектом создаваемой программы.

Это окно содержит: строку заголовка; строку меню; панель инструментов; палитру компонентов.

Строка заголовка главного окна отображает имя открытого в данный момент проекта.

По заголовку главного окна можно определить, в каком режиме открыт проект:

Текст заголовка

Режим работы

Delphi*-Project1

Редактирование

Delphi* - Project1 [Running]

выполнение

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

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

Палитра компонентов устроена в виде наборов пиктограмм. Совокупность наборов составляет библиотеку визуальных компонентов (Visual Component Library -VCL). Имеется несколько категорий компонентов, каждая из которых расположена на своей вкладке. С помощью палитры  компонентов мы будем создавать объекты на форме.

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

Окно инспектора объектов отображает свойства активизированного щелчком мышью какого-либо компонента или самой формы. Имя активизированного компонента находится под заголовком окна.

Это окно имеет две вкладки - Properties (Свойства) и Events (События).

Свойство определяет атрибут компонента, например, размер кнопки или шрифт метки.

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

По ходу работы система формирует в окне редактора кода текст программы на языке Паскаль, связанной с формой. После загрузки Delphi это окно спрятано за окном формы, иего можно увидеть, щелкнув на кнопке Toggle Form/Unit на панели инструментов.

Пользователь может дополнять текст программы самостоятельно или по предложению системы в момент размещения объектов на форме.

Создание и сохранение проекта и файла модуля

Каждый пункт меню содержит набор команд. Рассмотрим некоторые команды меню File.

Команда New открывает окно New Items, при помощи которого можно создать новую форму, шаблон проекта или формы, которые затем могут быть использованы.

Команда New Form открывает окно новой формы и соответствующего ей модуля и добавляет их к активному проекту.

Команда New Application создает новый проект, состоящий из файла проекта project1.dpr, файла модуля unit1.pas и файла формы unit1.dfm. При этом IDE отображает окно проектировщика формы и редактора кода. Окно проектировщика формы является активным. После этого рекомендуется сохранить новый проект, присвоив ему имя.

Команда Save Project As позволяет сохранить проект под другим именем и в случае необходимости в другом каталоге. После выбора этой команды появляется диалоговое окно для сохранения файла кода программы. По умолчанию файлу дается расширение pas, указанное в окне Тип файла. Далее следует ввести имя файла и щелкнуть на кнопке Ok. Появится следующее диалоговое окно для сохранения файла проекта (расширение dpr - Delphi Project). Надо ввести имя проекта и щелкнуть на кнопке Ok.

Примечание. Для сохранения ранее созданного проекта достаточно выполнить команду Save.

Задание.

1.  Создайте новый проект. Для этого выполните команду File, New Application.

2.  Выполните "пустую" программу - щелкните мышью на кпопке Run. На экране исчезнут все вспомогательные окна, у формы пропадет координатная сетка.

3.  Для возвращения в среду Delphi нажмите Alt+F4.

4.  Сохраните проект. Для этого выполните команду File, Save Project As, предварительно создав паку, в которую вы будете записывать свои проекты.

Примечание. Особое внимание обратите на п.4: самая распространенная ошибка - выполнение команды File, Save вместо File, Save Project As.

5.  Закройте Delphi.

6.  Загрузите Delphi.

7.  Загрузите свой проект, выполнив команду File, Open Project и указав правильно имя (см.п.4).

8.  Повторите п.2 и п.3.

 

 

 

Практическая работа 2. Разработка первого проекта.

Постановка задачи

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

После запуска программы по щелчку мышью на кнопке "Приветствие" появляется сообщение "Первые успехи!". Для выхода из программы необходимо щелкнуть мышью на кнопке "Выход".

Пояснение. Новым в этой работе является использование компонентов Label и Button палитры компонентов Standard и обработка события OnClick - нажатия кнопки.

План разработки программы

1.                  Открыть новый проект.

2.                  Разместить на форме экземпляры компонентов: метку Label и две кнопки Button.

3.                  Выделить кнопку Button2, перейти в Object Inspertor  на вкладку Properties, найти Caption (заголовок) и изменить заголовок Button2 на заголовок "Выход".

4.                  Перейти на вкладку Events окна Object Inspector, найти событие OnClick, справа от него дважды щелкнуть мышью. Ввести лишь одну команду: Close; (Обязательно поставить точку с запятой в конце команды).

5.                  Сохранить код программы и проект под именами pr1.pas и pr2.dpr.

6.                  Запустить программу, затем закрыть окно проекта, щелкнув на кнопке "Выход".

7.                  Выделить форму, в свойстве Caption окна Object Inspertor заменить имя формы Form1 на "Проект -1". Это будет заголовком основного окна программы.

8.                  Выделить кнопку Button1 в свойстве Caption окна Object Inspertor заменить имя кнопки Button1 на "Приветствие". При необходимости увеличить длина кнопки.

9.                  Перейти на вкладку Events окна Object Inspertor и найти событие OnClick, справа от него дважды щелкнуть мышью. Ввести следующий код:

Label1.Caption:='Первые успехи!';

10.              Сохранить проект, запустить и протестировать его.

 

Краткое описание плана разработки программы

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

1.                  Открыть новый проект.

2.                  Разместить на форме экземпляры компонентов: метку Label и две кнопки Button.

3.                  Выполнить следующие действия:

Выделенный объект

Вкладка окна

Object Inspertor

Имя свойства/

имя события

Действие

Button2

Properties

Caption

Установка имени кнопки "Выход"

 

Events

OnClick

Close

4.                  Сохранить код программы и проект под именем pr1.pas и pr2.dpr.

5.                  Запустить программу, затем закрыть окно проекта, щелкнув на кнопке "Выход".

6.                  Выполнить следующие действия:

Выделенный объект

Вкладка окна

Object Inspertor

Имя свойства/

имя события

Действие

Form1

Properties

Caption

Установка имени формы: "Проект-1"

Button1

Properties

Caption

Установка имени кнопки: "Приветствие"

 

Events

OnClick

Label1.Caption:='Первые успехи!';

7.                  Сохранить проект, запустить и протестировать его.

Задание для самостоятельного выполнения

1.                  Сделать шрифт выводимой реплики "Первые успехи" отличным от стандартного по виду, цвету и размеру. (Подсказка. В Object Inspertor дважды щелкнуть справа от названия свойства Font)

2.                  Заменить вид кнопки выход на более привлекательный. (Подсказка. Для замены кнопки надо удалить существующую, а другую найти в палитре компонентов на вкладке Additional. Она называется BitBtn. Затем изменить ее вид с помощью свойства Kind.)

3.                  Сделать так, чтобы после нажатия кнопки "Приветствие" на экране появлялось сообщение "Первые и не последние!". (Подсказка. Изменить значение свойства Caption метки Label1 при реакции кнопки Button1 на событие OnClick.

4.                  Сделать файл pr1.exe. (Подсказка. В меню опция Project/ Compile Project1)

5.                  Выйти из среды Delphi  и запустить исполняемый файл в Windows.


Практическая работа 3. Разработка проекта "Диалог"

 

Постановка задачи

Составить программу, выполняющую следующие действия.

После запуска программы пользователь вводит свое имя, например Марина, в прямоугольник с мигающим курсором и нажимает клавишу Enter. Появляется вопрос: "Марина, ты любишь читать?". Если пользователь щелкает на кнопке "Да", то появляется реплика "Молодец", если "Нет" - реплика: "Почему же? Надо читать".

Для выхода из программы необходимо щелкнуть на кнопке "Выход".

Пояснение. Новым в этой работе является использование строки ввода Edit (вкладка палитры компонентов Standard) и обработки события OnKeyPress - нажатия клавиши.

План разработки программы

1.                  Открыть новый проект. Дать форме название "Диалог".

2.                  Разместить на форме экземпляры компонентов в соответствии с рис.3

3.                  Выполнить следующие действия:

Выделенный

объект

Вкладка окна

Object Inspertor

Имя свойства/

имя события

Действие

BitBtn1

Propertie
Caption

Установка имени кнопки "Выход"

Kind

Bk Close

Label1
Propertie
Caption

Ввод надписи: "Введите свое имя и нажмите Enter"

Edit1

Events

OnkeyPress

If key=#13 then begin

 Label2.Caption:=Edit1.Text+' , ты любишь читать?';

End;

Button1
Properties

Caption

Установка имени кнопки: "да"

Events
OnClick

Label3.caption:='Молодец!';

Button2

Properties
Caption

Установка имени кнопки "Нет"

Events

OnClick

Label3.caption:='Почему же? Надо читать.';

4.                  Сохранить код программы и проект под именем pr-2.pas и pr-2.dpr.

5.                  Запустить программу, затем закрыть окно проекта, щелкнув на кнопке "Выход".

6.                  Сохранить проект, запустить и протестировать его.

Дополнительное задание

1.                  Сделать кнопки "Да" и "Нет" доступными только после ввода имени и нажатия клавиши Enter. Подсказка. Значение свойства Enabled кнопок "Да" и "Нет" установить равным False, а в процедуру Edit1KeyPress включить код

Button1.Enabled:=true;

Button2.Enabled:=true;

2.                  Удалить имена объектов Edit1, Label2, Label3 для обеспечения возможности повторить диалог. Подсказка. Разместить на форме еще одну кнопку BitBtn. Установить значение bkRetry свойства Kind и значение "Повторить" свойства Caption. Ввести программно по нажатию кнопки "Повторить" пустые строки вместо надписей и имен кнопок:

Label2.Caption:=' ';

Label3.Caption:=' ';

Edit1.Text:=' ';

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

Form1.ActiveControl:=Edit1;

 

Практическая работа 4. Разработка проекта «Ваш вес»

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

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

Введя свой рост и фактический вес и нажав кнопку «Расчет», учащийся может определить, худой он или полный и на сколько надо поправиться или похудеть (рис. 12).

Пояснение. Новым в этой работе является:

     использование типов переменных — целочисленного и действительного (integer и real);

     преобразование строковых данных в числовые и числовых в строковые: с помощью функцийStrToInt; StrToFloat; IntToStr FloatToStr ; Format();

     обработка исключительных ситуаций с помощью оператора Try - except - end;

     использование процедуры ShowMessage для вывода сообщения в отдельном окне.

План разработки программы

1.  Открыть новый проект.

2.  Разместить на форме экземпляры компонентов в соответствии с рис. 13. В поле Editl будем вводить вес в килограммах, а в Edit2 - рост в сантиметрах.

3.  Сохранить код программы и проект под именами, например, unit5.pas и pr5.dpr.

4.  Ввести в раздел VAR переменные для сохранения значений:

фактического веса (faktW), оптимального веса (optW),       

роста (Rost),

разницы между оптимальным весом и фактическим (Delta). Вначале будем считать, что все данные у нас целые числа:

var

factW, optW, Rost, Delta : integer;

5.  Создать процедуру, реагирующую на щелчок на кнопке Buttonl, и заполнить ее следующим кодом:

Выделенный объект

Вкладка окна Object Inspector

Имя события

Действие

Buttonl

Events

OnClick

factW := StrToInt (Editl. text) ;

Rost  : = StrToInt (Edit2 . Text) ;

OptW  :=Rost - 100;

Delta  := abs(factW - optW) ;

if optW = factW then

Label3 . caption := 'Ваш вес идеален!'

else

if optW > factW then

Label3 . caption  := 'Вам надо попра-

виться на '+IntToStr (Delta) +' кг.'

else

Label3 . caption  := 'Вам надо поху-

деть на '+IntToStr (Delta)+'   кг.'

Пояснение. Функция StrToInt преобразует строку в целое число, функция IntToStr выполняет обратное действие — целое число преобразует в строку,

6.  Сохранить код программы и проект под именами, например, pr-5.pas и pr-5.dpr.

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

var

factW, optW, Rost, Delta : real;

Преобразование действительных чисел в строки и строк в действительные числа выполняется с помощью функций FloatToStr и StrToFloat. Внести со­ответствующие изменения в обработку события OnClick компонента Buttonl.

8.         Сохранить проект, запустить и протестировать его.

Задание для самостоятельного выполнения

1.         Для форматирования и преобразования действительных чисел вместо функции FloatToStr() применить функцию Format('%f '.[переменная]).

Например: Format('%f ', [Delta]).

2.         Для форматирования и преобразования применить эту же функцию в виде: Format('Строка %f, [переменная]).

Например: Format('Baм надо похудеть %f',[Delta]) .

3.         Усовершенствовать проект:

а)         сделать к программе заголовок;

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

в)         вставить кнопку выхода из программы;

г)         предусмотреть возможность повторного запуска программы (см. проект «Диалог»),

4.         Сделать так, чтобы в начале программы объекты Label2 и Edit2 были не видны и появлялись бы на экране только после того, как будет введен вес.

Подсказка. Свойству Visible нужно присвоить значение False.

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

Обработчик исключений строится в виде таких конструкций:

try

<защищенный блок операторов> except

<обработка исключений> end;

Если при выполнении операторов из защищенного блока возникнет ис­ключение, управление будет передано в блок операторов, располагающийся между операторами except и end, но, если ошибка не возникает, блок обработ­ки исключений игнорируется и управление передается оператору, следующе­му за оператором end.

Пример использования обработки исключений для процедуры EditlKey Pressed может выглядеть так:

Try

 FactW:=StrToInt(Edit1.text);

Except

 ShowMessage(‘ Ошибочная запись числа:’+ edit1.text);

Edit1.SetFocus;

Edit;

End;

В результате выполнения оператора FactW: =StrToInt (Editl.Text) на экране появляется окно с текстовым сообщением и кнопкой ОК. После этого работа программы приостанавливается в ожидании реакции пользователя. При вызове стандартной процедуры Exit активизируется редактор для исправле­ния ранее введенного ошибочного текста.

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

Примечание. При работе в среде Delphi эксперименты с исключениями плохо прослеживаются, так как при каждом исключении среда «перехватывает» управление программой. Для отмены этого необходимо, выбрав команду Tools, Debegger Options, Language Exceptions, снять флажок Stop on Delphi Exceptions.

7.  Изменить алгоритм расчета с учетом индекса массы тела.

Вес: X;

рост: У;

индекс массы тела: А = Х/У2 (кг/м2). Результат определяется по таблице:

№п/п

Значение индекса

Результат (сообщение, которое надо вывести)

1

А<18

Большой недовес

2

18 < А < 20

Маловато и небезопасно, можно получить истощение

3

20 < А < 25

Идеально

4

26 < А < 30

Легкий перебор

5

30 < А

Срочно нужно худеть

Листинг программы

unit Unit5; interface

private

{ Private declarations } public

{ Public declarations }                                                                               

end; var

Forml: TForml; implementation {$R *.DFM)

procedure TForml. ButtonlClick (Sender: TObject); var

A, factW,optW, Rost, Delta :Real; begin try

factW : =StrToFloat (Editl . Text) ; except

ShowMessage {'Ошибочная запись числа: ' +Editl . Text) ; Editl.

end; try

Rost : =StrToFloat (Edit2 . Text) ; except

ShowMessage (' Ошибочная запись числа: ' +Edit2 . Text) ;

Edit2.SetFocus;

Exit; end;

OptW:=Rost-100; Delta:=abs(factW-OptW) ; if OptW=factW then

Label3. Caption :=' Ваш вес идеален' else if optW>FactW then

Label3.Caption:=Format{' Вам надо поправиться на %f кг.' , [Delta]) else

Label3. Caption :=Format (' Вам надо похудеть на %f кг .', [Delta] );

A:-(factW*10000)/(Rost*Rost) ;                                                  

if A<18 then ShowMessage (' Жуткий недовес') else

if (A>=18) and (A<20) then ShowMessage ( ' Маловато и небезопасно,

можно получить истощение') else

if (A>=20) and (A<=25) then ShowMessage (' Идеально ') else

if (A>=25) and (A<=30) then ShowMessage ('Легкий перебор' ) else _    ••     

if (A>30) then ShowMessage ('Срочно нужно худеть'); end;

procedure TForml. BitBtn2Click (Sender: TObject); begin

Edit2.Text:=" ;

Editl. SetFocus;

Label3 . Caption : =' ' ;

Label2 . Visible : =false ;

Edit2 .Visible : «false ; end;

procedure TForml. EditlChange (Sender: TObject); begin  .   

Edit2 . Visible : =true ;

Label2. Visible : =true ; end; end.

 

Практическая работа 5. Разработка проекта «Тест по физике»

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

После запуска программы появляется изображение, аналогичное рис. Пользователь, перемещаясь с помощью клавиш-стрелок по списку «Физическая величина», выбирает любое слово, нажав клавишу Enter. Затем он переходит в список «Название величины» и выбирает соответствующее название выбранной физической величины. Если выбрано правильное название величины, то под словом «Оценка» появляется одобрительная реплика «Правильно», если неправильное слово, то — «Ошибка». Правильные названия ищутся до тех пор, пока не будет получено соответствие всех физических величин и их названий.

Пояснение. Новым в этой работе является обеспечение взаимодействия двух списков ListBox на основе свойств Items и Itemlndex и создание многострочных надписей в объекте Label.

План разработки программы

1.    Открыть новый проект.

2.    Разместить на форме объекты в соответствии с рис. 17 и присвоить заголовки меткам. Обратить внимание, что заголовки меток «Физическая величина» и «Название величины» состоят из двух строк и отцентрированы.

Для вывода многострочных надписей в объектах Label выполните следующие действия:

 

Выделенный объект

Вкладка окна Object Inspector

Имя свойства

Действие

Label 1

 

 

 

 

Properties

 

 

 

 

AutoSize (изменение размера в зависимости от текста в Caption)

Wordwrap (разрыв строки)

Height Width

Alignment (выравнивание текста)

Установка значения False

 

 

 

Установка значения True

 

Установка подходящих размеров

Установка значения taCenter

 


3. Установить кнопку выхода из программы и выполнить следующие действия:

 

Выделенный объект

Вкладка окна Object Inspector

Имя свойства/имя события

Действие

BitBtnl

Properties

Caption

Установка заголовка кнопки: «Выход»

 

 

 

 

Kind

BkCancel

 

 

Events

BitBtnlClick

Close ;

Сохранить код программы и проект под именами, например, unitS.pas и prS.dpr.

Запустить программу, затем закрыть окно проекта, щелкнув на кнопке «Выход».

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

Сохранить набранный текст под именем fizl.txt. Для этого щелкнуть правой кнопкой мыши и выбрать режим Save. Для выхода из встроенного редактора щелкнуть на кнопке ОК.

7.         Выделить объект Listbox2 и проделать с ним аналогичную работу, введя названия физических величин: «Напряжение», «Сопротивление», «Сила тока», «Мощность».

Сохранить набранный текст под именем fiz2.txt.

8.         Выполнить следующие действия:

 

Выделенный объект

Вкладка окна Object Inspector

Имя события

Действие

ListBoxl

Events

OnKeyPress

If key=#13 then Numl : =ListBoxl . Itemlndex ;

ListBox2

Events

OnKeyPress

If key=#13 then begin

case ListBox2 . Itemlndex of

0:  Kum2:= 2;

1:  Num2:= 1;

2:  Num2:= 3;

3:  Num2:= 0;

end;

if Numl=Num2 then

begin

Label4 . Caption : =' Правильно' ;

CountR : =CountR-H

end

Else Label4 .Caption :=  'Ошибка';

If CountR=5  then

ShowMessage (' Тест окончен')

В разделе Var переменные Numl, Num2 и CountR объявить как целочисленные.

9. Сохранить проект, запустить и протестировать его.

Задание для самостоятельного выполнения

1. Списки ListBoxl и ListBox2 сделать поочередно доступными после нажатия клавиши Enter.

Подсказка. Установить значение False свойства Enabled объекта ListBox2, а в процедуру Key Pressed, относящуюся к ListBoxl, включить строки:

ListBox2.Enabled := True; ListBoxl.Enabled := False; Forml.ActiveControl := ListBox2;

2.         Внести изменения в программу, чтобы при правильном выборе назва­ния физической величины слово в левом списке исчезало.

Подсказка. В процедуру KeyPressed, относящуюся к ListBox2, включить:

ListBoxl.Items.Delete(Numl);ListBoxl.Items.Insert(Numl,);

3.    Увеличить количество физических величин до 10.

4.  Вывести сообщение о количестве правильных ответов и оценке за тест.

Листинг программы

unit Unit8; interface

private

{Private declarations) public

{Public declarations} end; var

Forml: TForml;

COUNTR,REZ,numl,num2:integer; implementation {$R *.DFM}

procedure TForml.BitBtnlClick(Sender: TObject); begin Close end;

procedure TForml.ListBoxlKeyPress(Sender: TObject; var Key: Char); begin If (Key=#13) and (Forml.ListBoxl.Items.Strings

[Forml.IListBoxl.Itemlndex]<>'') Then begin

numl:=forml.listboxl.itemindex; forml.ListBoxl.Enabled:=False; forml.ListBox2.Enabled:=True; forml.ActiveControl:=Listbox2 end end;

procedure TForml.ListBox2KeyPress(Sender: TObject; var Key: Char); begin

if key=#13 then begin case forml.ListBox2.Itemlndex of 0: num2:=2; 1: num2:=4; 2: num2:=7; 3: num2:=0; 4: num2:=3; 5: num2:=1; 6: num2:=6; 7: num2:=8; 8: num2:=5; 9: num2:=9; end;

if numl=num2 then begin forml.Label4.Caption:='Верно!'; REZ:=REZ+1 end

else forml.Label4.Caption:='Ошибка!'; COUNTR:=COUNTR+1 forml.ListBoxl.Items.Delete(numl);

forml.ListBoxl.Items.Insert(numl,'');

if c=10 then showmessage('Тест оконченОценка:'+

inttostr (REZ div 2 + ord(REZ div 2<1))+' (правильных ответов:' +inttostr (REZ)+')') ;

forml.ListBoxl.Enabled:=0;

foral.ListBox2.Enabled:=0;

forml.ActiveControl:=listboxl end end;

procedure TForml.BitBtn2Click(Sender: TObject); begin COUNTR:=0; REZ:=0; numl:= -1; num2:= -1;

forml.ListBoxl.Items.LoadFromFile('fizl.txt');

end;

 end.

 

Практическая работа 6 Разработка проекта «Тест по географии»

Постановка задачи

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

Пояснение. Новым в этой работе является использование в проекте нескольких форм и организация вызова этих форм, использование шаблона формы Tabbed pages из окна New Items вкладки Forms, новых компонент глав­ного меню, многострочного текстового редактора, которые находятся на вкладке палитры компонентов Standard, компонента Image (графический объект) со вкладки Additional палитры компонентов и компонента PageControl (набор панелей с вкладками).

 

 

 

План разработки программы

1.    Открыть новый проект.

2.   Создать титульную форму.

2.1.    Дать название форме«Тест по географии». Разместить на форме метки в соответствии с рис. и присвоить им заголовки.

2.2.    Разместить на форме объект Image (графический объект), который находится на вкладке Additional палитры компонентов. Выделить Image, справа от свойства Picture щелкнуть на кнопке с тремя точками. В появившемся окне встроенного редактора Picture Editor щелкнуть на кнопке Load, которая вызывает открытие окна для установки имени графического файла. Выбранная картинка появится вначале в служебном окне, и если пользователь подтвердит (кнопка ОК), то она возникнет и в окне формы.

2.4.   Разместить на форме кнопку «Выход» и дать ей значение Close.

2.5.   Разместить на форме кнопку «Продолжить». Пока не задавать действия, которые будут выполняться по нажатию этой кнопки.

2.6.  Сохранить форму под именем, например, F_Titul.pas и проект — под именем Pr_Test.dpr

3. Создать форму «Меню».

3.1. Командой File New Form создать новую форму.

Выполнить следующие действия:

Выделенный объект

Вкладка окна Object Inspector

Имя свойства

Действие

Form

Properties

Caption

Установка заголовка формы: «Меню»

Name

Установка имени формы: U_Menu, под которым компонент будет известен программе

3.2. Создать меню с помощью компонента MainMenu, который находится на вкладке Standard палитры компонентов. Теперь необходимо создать его опции.

Дважды щелкнуть на появившейся пиктограмме MainMenu или, выделив объект MainMenu, щелкнуть на кнопке в правой половине строки Items. Появится окно с заголовком Forml.MainMenul

Установите в качестве значения свойства Caption название первого пункта меню: «Тест». Оно запи­шется в синем прямоугольнике слева на полосе меню. Нажмите клавишу Enter. Теперь опция готова и можно переходить к созданию следующей.

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

В названиях опций, являющихся значениями свойства Caption, можно указать символ «&» перед тем символом, который будет использоваться для быстрого выбора опции. В нашем примере для опции «Тест» можно выбрать комбинацию клавиш Alt+T. Для этого в строке Caption надо указать «&Тест».

Опция «Тест» должна содержать подопции «Тестирование», «Результат», «Выход».

Опция «Помощь» не должна содержать подопций.

Для реализации подопции «Выход» выполните следующие действия:

Выделенный объект

Вкладка окна Object Inspector

Имя события

            Действие

Выход

Events

OnClick

Close;

3.3. Сохранить форму под именем F_Menu.pas.

4. Создать переход с титульной формы на форму «Меню». Для этого выполнить следующие действия:

 

Выделенный объект

Вкладка окна Object Inspector

Имя события

Действие

Кнопка «Про­должить»

Events

OnClick

U_ Menu . ShowModal ; Кроме того, описать в модуле F_Titul.pas внешнее имя F_Menu, разместив его в блоке реализации (implementation):

uses  F_Menu ;

5.         Сохранить выполненный проект (File, Save All). Запустить программу на выполнение и проверить правильность ее работы:

     перейти с титульной формы на форму «Меню»;

     выйти из проекта.

6.         Создать форму «Помощь».

Командой File, New открыть окно New Items (рис. 20), при помощи которого можно создать новую форму.

На вкладке Forms выбрать форму Tabbed pages. Появится стандартное окно новой формы Tabbed Notebook Dialog

Вызвать и рассмотреть список объектов, содержащихся на форме. Форма построена на основе компоненты TPageControl и содержит несколько пере­крывающих друг друга вкладок класса TTabSheet. Каждая вкладка может содержать свой набор помещенных на нее компонентов. Чтобы на этапе конст­руирования добавить новую вкладку или выбрать ранее вставленную, надо щелкнуть на объекте правой кнопкой мыши и выбрать New Page (новая па­нель), Next Page (следующая панель) или Previous Page (предыдущая панель). Смена панелей идет циклически.

6.2.   Удалить объекты-кнопки ОК и Help.

6.3.   Заменить название кнопки Cancel на «Выход» и установить для нее действие Close;

6.4.  Изменить название формы, для чего поместить на форму объект PagesDlgl и выполнить следующие действия:

 

Выделенный объект

Вкладка окна Object Inspector

Имя свойства/

 имя события

Действие

PagesDlgl

Properties

Caption

Установка заголовка формы: «Помощь»

 

 

Name

Установка имени компоненты: U_Instr

6.5.   Дать вкладкам названия «Правила работы», «Тематика теста», «Авторские права», для этого в свойстве Caption заменить значения Tab Sheet 1, TabSheet2, TabSheet3.

6.6.   Заполнить страницы формы Tabbed Notebook Dialog текстом инструкции, для чего на каждую страницу добавьте экземпляр компонента Memo из вкладки Standard палитры компонентов. Для ввода текста в объект Memo щелкнуть на кнопке с тремя точками свойства Lines. В появившемся окне встроенного редактора ввести необходимый текст.

Для того чтобы цвет вставленного объекта совпадал с цветом формы, выполнить следующие действия:

Выделенный объект

Вкладка окна Object Inspector

Имя события

Действие

Memo

 

 

 

 

Properties

 

 

 

 

Color

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

Ct3D

Установка значения свойства Falseотмена трехмерного эффекта объекта

BorderStyle

Установка значения свойства bsNoneотмена рамки

Font

Установка значения свойства — выбор нужного шрифта

Alignment

Установка значения свойства — подходящее выравнивание текста

6.7.  Сохранить созданную форму под именем F_Instr.pas.

6.8.  Создать переход с формы «Меню» на форму «Помощь». Для этого перейти на форму «Меню», установить курсор на опцию «Помощь», щелкнуть мышью и внести изменения в процедуру обработки:

Выделенный объект

Вкладка окна Object Inspector

Имя события

Действие

Кнопка «Помощь»

Events

OnClick

U_Instr . ShowModal ; Кроме того, описать в модуле F_Menu.pas внешнее имя F_Instr, разместив его в блоке реализации (implementation): uses F_Instr;

6.9. Сохранить выполненный проект (File, Save All). Запустить програм­му на выполнение и проверить правильность ее работы:

     перейти с титульной формы на форму «Меню»;

     перейти с формы «Меню» на форму «Помощь»;

     выйти из проекта.

7. Создать форму «Тестирование», дать ей имя U_Test. 7.1. Построить форму «Тестирование» на основе стандартной формы Tabbed Notebook Dialog и включить в нее 5 вопросов (5 вкладок TtabSheet).

Пример теста по географии:

1)         За начало отсчета географической долготы места принят:

а)         экватор;

б)         меридиан 180°;

в)         нулевой меридиан;

г)         Северный полюс.

Ответ: в.

2)         Линии, соединяющие на климатических картах точки с одинаковым
атмосферным давлением, называются:

а)         горизонталями;

б)         изометмами;

в)         изобарами;

г)         изогиетами.
Ответ: в.

3)         Артезианскими называются следующие воды:

а)         почвенные;

б)         грунтовые;

в)         межпластовые ненапорные;

г)         межпластовые напорные.
Ответ: б.

4)         Основным географическим следствием шарообразной формы Земли является:

а)         смена дня и ночи;

б)         смена времен года;

в)         широтная зональность;

г)         высотная поясность.
Ответ: в.

5)         Образование пояса низкого атмосферного давления в экваториальных широтах обусловлено прежде всего:

а) низкими температурами воздуха;

6)         высокими температурами воздуха;

в)         циклонами;

г)         антициклонами.
Ответ: б.

Создать переход с формы «Меню» на форму «Тестирование».

Сохранить созданную форму под именем F_Test.pas.

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

Сохранить выполненный проект (File, Save All). Запустить программу на выполнение и проверить правильность ее работы:

 

§     перейти с титульной формы на форму «Меню»;

§     перейти с формы «Меню» на форму «Тестирование»;

§     выполнить тестирование;

§     выйти из проекта.

Для подсчета результата ввести переменную Ball, которую необходимо объявить в разделе Var формы «Результат». Внести изменения в программу для подсчета баллов.

§     Создать форму «Результат» (дать ей имя U_Res).

§     Форма «Результат» должна содержать оценку тестирования и кнопку «Выход».

§     Самостоятельно создать форму «Результат».

§     Сохранить созданную форму под именем F_Res.pas.

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

 

 

 

 

 

 

 

Выделенный объект

Вкладка окна Object Inspector

Имя события

Действие

Кнопка «Реpeультат»

Events

OnClick

U Res. Label1. Caption :=' Ваш резуль-

тат:   '+ IntToStr(Ball) ;

U_Res . ShowModal ;

Кроме того, нужно описать в модуле

F_Menu.pas внешнее имя F_Res, размес-

тив     его     в     блоке     реализации

(implementation) :

uses F_Res;

 

 

9. Проверить правильность работы программы.

Задание для самостоятельного выполнения

1.    Создать тестирующую программу по истории, литературе, математике ли какому-либо другому предмету.

2.  Дополнить программу разделом «Содержание изучаемой темы».

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

Листинг программы

Титульная форма:

unit F_Titul;

interface

uses

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

Dialogs, ExtCtrls, StdCtrls, Buttons,F_Menu; type

private

{Private declarations}

public

{Public declarations}

end;

var

Forml: TForml; implementation

{$R*.DFM}

procedure TForml.FormCreate(Sender: TObject);

begin

Label2.Caption:='Разработал ученик '#13'10 класса Лицея БИТ’'#13' Березовский Александр’;

 end;

procedure TForml.BitBtnlClick(Sender: TObject);

begin

   Close;

end;

procedure TForml.BitBtn2Click(Sender: TObject);

begin

  U_Menu.ShowModal;

end;

end.

Форма «Меню»:

unit F_Menu;

interface

uses

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

Dialogs, Menus,F_Instr,F_Test,F_Res;

Type

private

(Private declarations}

public

(Public declarations}

end;

var

  U_Menu: TU_Menu; implementation {$R *.DFM}

procedure TU_Menu.N4Click(Sender: TObject);

begin

Close;

end;

procedure TU_Menu.N5Click(Sender: TObject);

begin

U_Instr.ShowModal

end;

procedure TU_Menu.N2Click(Sender: TObject);

 begin

nm := InputBox('Начало тестирования','Введите имя',''); U_Test.RadioGroupl.Itemlndex:=-1; U_Test.RadioGroup2.Itemlndex:=-1; U_Test.RadioGroup3.Itemlndex:=-1; U_Test.RadioGroup4.Itemlndex:=-1; U_Test.RadioGroup5.Itemlndex:=-1; U_Test.PageControll.ActivePage:=U_Test.TabSheetl; U_Test.ShowModal; end;

procedure TU_Menu.N3Click(Sender: TObject);

begin

U_res.Label1.caption:=nm+’Ваш результат: ‘+IntToStr(ball);

U-res.Showmodal;

End;

End.

Форма «Помощь»:

Unit F_Instr;

Interface

 Uses

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

STDctrls, BUTTONS, COMCTRLS, ExtCtrls;

Type

procedure CancelBtnClick (Sender: Tobject);

private

(Private declarations}

public

(Public declarations}

end;

var U_Instr: TU_Instr;

implementation

{$R*.DFM}

procedure TU_Instr. CancelBtnClick (Sender: Tobject);

begin

 close;

end;

end.

Форма «Результат»

Unit F_res;

Interface

 Uses

Windows, SysUtils, Classes, Graphics, Controls, Forms,

STDctrls, BUTTONS, ExtCtrls;

Type

procedure CancelBtnClick (Sender: Tobject);

private

(Private declarations}

public

(Public declarations}

end;

type

T1=array[1..5,0..3] of byte;

Const

 Otv:T1=((0,0,1,0),(0,0,1,0),(0,1,0,0),(0,0,1,0),(0,1,0,0));

Var   U_res: TU_res;

  Ball:Byte;

  Nm;String;

Implementation

[$R*.DFM}

end.

Форма «тестирования»

Unit F_test;

Interface

 Uses

Windows, SysUtils, Classes, Graphics, Controls, Forms,

STDctrls, BUTTONS, ExtCtrls, ComCtrls,f_Res;

Type

procedure OKBtnClickk (Sender: Tobject);

private

{Private declarations}

public

{Public declarations}

end;

 var

 U_Test: TU_Test; implementation {$R *.DIM}

procedure TU_Test.OKBtnClick(Sender: TObject) begin

Ball:=otv[1,RadioGroupl.Itemlndex]+ otv[2,RadioGroup2.Itemlndex]+ otv[3,RadioGroup3.Itemlndex]+ otv[4,RadioGroup4.Itemlndex]+ otv[5,RadioGroup5.Itemlndex];

end;

end.


 

Практическая работа 7. Создание текстового редактора в среде Delphi.

 

Постановка задачи. Создать собственный текстовый редактор. Редактор должен иметь строку меню, панель инструментов, сохранять текстовые документы.

Пояснение. Новым в этой работе является использование

Алгоритм действия

1. Открыть Delphi.

На строке меню Project/ Add New Project...

На вкладке  Project окна New Item «кликните» на Application Wizard. Откроется мастер приложений. Первое окно предложит указать, какие меню нам нужны. Пометьте галочкой File menu и Edit menu, затем кликните Next. Следующее окно предложит выбрать расширения файлов, с которами будет работать Ваша программа. Кликните на Add.В поле Desction введите «Текстовый документ», а в поле Extension «txt» и на Ok, а потом Next. В следующем окне у Вас поинтересуются, какие стандартные кнопки Вы хотите добавить на панель инструментов будущего приложения. Разберитесь в интерфейсе этого окна самостоятельно. Добавьте на панель инструментов все доступные кнопки из меню File и Edit. Перед тем как добавлять кнопки из меню Edit один раз нажмите кнопку Space. Так Вы поставите между группами кнопок File и Edit разделительную черту. В следующем окне введите на английском языке название программы. С помощью кнопки Browse определите для своего проекта место на жестком диске и пометьте галочками пункты Creat a status line и Enable hints. Нажмите на Finish и Delphi создаст новый проект.

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

Сперва по очереди выделяйте каждую кнопку на панели инструментов Вашего редактора, и в ОИ на первой вкладке найдите свойство Hint. Это свойство как раз олтвечает за всплывающую подсказку к кнопке. Переведите на русский язык значение этого свойства. Например, первую кнопку переведем так:  «Новый документ/Нажмите эту кнопку для создания нового документа».

3. После того как Вы русифицировали кнопки, пора приниматься за пункты меню. На прямую работать с ними не получится. Дважды щелкните по кнопке Main menu, которая находится между панелью инструментов и статусной линией заготовки. На самом деле это вовсе не кнопка, а невизуальный компонент. Она символизирует меню программы. После запуска программы эта «кнопка» просто не будет видна. Откроется редактор меню. Вот тут уже можно выделять разные пункты меню, как отдельные объекты и изменять их свойства. Здесь надо перевести не только подсказки, но и сами названия пунктов меню. За названия любых объектов отвечает свойства Caption. Добавлять новые или удалять старые пункты можно через контексное меню. Обратите внимание, что перед некоторыми буквами в названиях пунктов меню стоит знак &. Это значит, что во время работы программы следующая за ним буква будет подчёркнута, а активировать этот пункт меню можно будет нажатием соответствующей кнопке на клавиатуре. Для полной русификации не хватает только одного – русского названия программы. Дайте название своему редактору.

4. Основой текстового редактора является поле, куда пользователь введет текст. На палитре Delphi есть компонент, который отвечает за подобное поле ввода, -RichEdit. Найдите этот компонент (размещается он на вкладке Win32), кликните на него, а потом кликните на свободном месте на форме. Невзрачная кнопочка развернется в целое поле ввода. Отформатируем поле. Выделите RichEdit и в ОИ установите свойство Align в alClient. Поле ввода заняло всю свободную площадь на форме. Откройте свойство Line и удалите все содержимое поля. Запустите программу.

5. Опишем функцию сохранения и загрузки текстовых файлов. Внимательно посмотрите на свою форму. Видите невизуальные компоненты OpenDialog и SaveDialog они отвечают за стандартные окна сохранения и загрузки файлов Windows. Благодаря этому нет необходимости создавать соответствующие диалоги.

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

Begin

 RichEdit1.Lines.SaveToFile(SaveDialog.FileName);

End;

Процедура для кнопки «Открыть»:

Begin

 RichEdit1.Lines.LoadFromFile(OpenDialog.FileName);

End;

Кнопка «Новый документ»:

Begin

  RichEdit1.Clear;

End;

Кнопка «настройка печати»

Begin

RichEdit1.Print(‘текстового редактора «Супер»’);//Отправит на печать все содержимое

End;

Кнопка «Отмена»:

Begin

 With RichEdit1 do if HandleAllocated then SendMessage(Handle, EM_UNDO,0,0);

End;

Кнопка «Вырезать»:

 

Begin

  RichEdit1.CutTOClipboard;

End;

Кнопка  «Копировать »:

 Begin

  RichEdit1.CopyTOClipboard;

End;

Кнопка «Вставить»:

Begin

  RichEdit1.PasteFromСlipboard;

End;

Поздравляю! Вы создали собственный текстовый редактор.

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методическое пособие "Занимательное программирование в Delphi""

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Кризисный психолог

Получите профессию

Менеджер по туризму

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 664 839 материалов в базе

Скачать материал

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 14.06.2017 2344
    • DOCX 6.2 мбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Снегирёва Ольга Анатольевна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

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

    Удалить материал
  • Автор материала

    Снегирёва Ольга Анатольевна
    Снегирёва Ольга Анатольевна
    • На сайте: 8 лет и 3 месяца
    • Подписчики: 0
    • Всего просмотров: 12570
    • Всего материалов: 5

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Фитнес-тренер

Фитнес-тренер

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Информационные технологии в профессиональной деятельности: теория и методика преподавания в образовательной организации

Преподаватель информационных технологий

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 190 человек из 54 регионов
  • Этот курс уже прошли 973 человека

Курс повышения квалификации

Методы и инструменты современного моделирования

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Сейчас обучается 37 человек из 19 регионов
  • Этот курс уже прошли 69 человек

Курс повышения квалификации

Использование компьютерных технологий в процессе обучения информатике в условиях реализации ФГОС

36 ч. — 144 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 139 человек из 44 регионов
  • Этот курс уже прошли 1 298 человек

Мини-курс

Методика образовательных игр с детьми раннего возраста

3 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 28 человек из 18 регионов
  • Этот курс уже прошли 36 человек

Мини-курс

Дизайн-проектирование: практические и методологические аспекты

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Разделение имущества при банкротстве: правовые аспекты и мировое соглашение

4 ч.

780 руб. 390 руб.
Подать заявку О курсе