Файл: Протокол 9 от 11. 05. 2012 г Омск 2012.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 30.11.2023

Просмотров: 63

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
, тем не менее 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. Теперь нажмите клавишу и щелкните на 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

    Вкладка окна

    Object Inspector

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

    имя события

    Действие

    Button2

    Properties

    Caption

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




    Events

    OnClick

    Close


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

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

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



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

    Вкладка окна

    Object Inspertor

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

    имя события

    Действие

    Form1

    Properties

    Caption


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

    Button1

    Properties

    Caption


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



    Events

    OnClick


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

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

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

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

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

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

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

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



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

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

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

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

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

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


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

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

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

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

      Выделенный

      объект

      Вкладка окна

      Object Inspertor

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

      имя события

      Действие

      BitBtn1
      Propertie
      Caption

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

      Kind

      Bk Close
      Label
      Propertie
      Caption

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

      Events

      On keyPress

      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. Сохранить проект, запустить и протестировать его.