- •Лабораторная работа № 6
- •Лабораторная работа 7
- •1. Домашнее задание
- •Лабоаторная работа №8
- •Лабораторная работа № 9 Работа с массивами в среде программирования «Delphi»
- •1. Теоретическая часть Реакция на события от мыши и клавиатуры
- •Интерфейс Drag&Drop
- •2. Лабораторные задания и методические указания по их выполнению
- •Лабораторная работа № 10
- •1. Теоретическая часть
- •Доступ к файлам
- •Подпрограммы для работы с файлами
- •Текстовые файлы
- •Подпрограммы для работы с текстовыми файлами
- •Подпрограммы для работы с типизированными файлами
- •TOpenDialog и tSaveDialog
- •2. Лабораторные задания и методические указания по их выполнению
- •394026 Воронеж, Московский просп., 14
Лабоаторная работа №8
Ознакомление со средой Delphi.
Цель работы: Приобрести практические навыки в работе с объектно- ориентированной средой программирования Delphi.
1. Теоретическая часть
1.1 Компоненты страниц STANDARD, ADDITIONAL, WIN 32.
На странице STANDARD палитры компонентов сосредоточены стандартные для Windows интерфейсные элементы, перечисленные в следующей таблице:
Таблица 2
Пикто грамма |
Имя |
Назначение |
|
MainMenu
|
Главное меню программы. Компонент способен создавать и обслуживать сложные иерархические меню.
|
|
РорирМепи
|
Вспомогательное или локальное меню. Обычно это меню появляется в отдельном окне после нажатия правой кнопки мыши.
|
|
Label
|
Метка. Этот компонент используется для размещения в окне не очень длинных однострочных надписей.
|
|
Edit
|
Строка ввода. Предназначена для ввода, отображения или редактирования одной текстовой строки.
|
|
Memo
|
Многострочный текстовый редактор. Используется для ввода и/или отображения многострочного текста.
|
|
Button
|
Командная кнопка. Обработчик события OnClick этого компонента обычно используется для реализации некоторой команды.
|
|
Checkbox
|
Независимый переключатель. Щелчок мышью на этом компоненте в работающей программе изменяет его логическое свойство Checked.
|
12
Продолжение таблицы 2
|
RadioButton
|
Зависимый переключатель. Обычно объединяется как минимум еще с одним таким же компонентом в группу. Щелчок по переключателю приводит к автоматическому освобождению ранее выбранного переключателя в той же группе.
|
|
ListBox
|
Список выбора. Содержит список предлагаемых вариантов (опций) и дает возможность проконтролировать текущий выбор.
|
|
ComboBox
|
Комбинированный список выбора. Представляет собой комбинацию списка выбора и текстового редактора.
|
|
ScrollBar
|
Полоса управления. Представляет собой вертикальную или горизонтальную полосу, напоминающую полосы прокрутки по бокам Windows-окна.
|
7
8 |
GroupBox
|
Группа элементов. Этот компонент используется для группировки нескольких связанных по смыслу компонентов.
|
|
RadioGroup
|
Группа зависимых переключателей. Содержит специальные свойства для обслуживания нескольких связанных зависимых переключателей.
|
|
Panel
|
Панель. Этот компонент, как и GroupBox, служит для объединения нескольких компонентов. Содержит внутреннюю и внешнюю кромки, что позволяет создать эффекты «вдавленности» и «выпуклости».
|
|
ActionList
|
Список действий. Служит для централизованной реакции программы на действия пользователя, связанные с выбором одного из группы однотипных управляющих элементов, таких как опции меню, пиктографические кнопки и т.п.
|
В страницу ADDITIONAL помещены 14 дополнительных компонентов, с помощью которых можно разнообразить вид диалоговых окон.
Таблица 3.
Пиктограмма |
Имя |
Назначение |
|
BitBtn
|
Командная кнопка с надписью и пиктограммой.
|
|
SpeedButton
|
Пиктографическая кнопка. Обычно используется для быстрого доступа к тем или иным опциям главного меню.
|
|
MaskEdit
|
Специальный текстовый редактор. Способен фильтровать вводимый текст, например, для правильного ввода даты.
|
|
StringGrid
|
Таблица строк. Этот компонент обладает мощными возможностями для представления текстовой информации в табличном виде.
|
|
DrawGrid
|
Произвольная таблица. В отличие от StringGrid строки этого компонента могут содержать произвольную информацию, в том числе и рисунки.
|
|
Image
|
Рисунок. Этот компонент предназначен для отображения рисунков, в том числе пиктограмм и метафайлов.
|
13
Продолжение таблицы 3
|
Shape
|
Фигура. С помощью этого компонента вы можете вставить в окно правильную геометрическую фигуру - прямоугольник, эллипс, окружность и т.п.
|
|
Bevel
|
Кромка. Служит для выделения отдельных частей окна трехмерными рамками или полосами.
|
|
ScrollBox
|
Панель с полосами прокрутки. В отличие от компонента Panel автоматически вставляет полосы прокрутки, если размещенные в нем компоненты отсекаются его границами. |
|
CheckList Box
|
Список множественного выбора. Отличается от стандартного компонента ListBox наличием рядом с каждой опцией независимого переключателя Типа CheckBox, облегчающего выбор сразу нескольких опций.
|
|
Splitter
|
Граница. Этот компонент размещается на форме между двумя другими видимыми компонентами и дает возможность пользователю во время прогона программы перемещать границу, отделяющую компоненты друг от друга.
|
|
StaticText
|
Статический текст. Отличается от стандартного компонента Label наличием собственного Windows-окнй, что позволяет обводить текст рамкой или выделять его в виде «вдавленной» части формы.
|
|
ControlBar
|
Полоса управления. Служит контейнером для «причаливаемых» компонентов в технологии Drag&Dock.
|
|
Chart
|
Диаграмма. Этот компонент облегчает создание специальных панелей для графического представления данных.
|
Страница WIN 32 содержит интерфейсные элементы для 32- разрядных операционных систем Windows 95/98/NT/2000/ХР.
Таблица 4.
Пиктограмма
|
Имя |
Назначение |
|
TabControl
|
Набор закладок. Каждая закладка представляет собой прямоугольное поле с надписью и/или текстом. Выбор той или иной закладки распознается программой и используется для управления содержимым окна компонента.
|
|
PageControl
|
Набор панелей с закладками. Каждая панель может содержать свой набор интерфейсных элементов и выбирается щелчком по связанной с ней закладке.
|
|
ImageList
|
Набор рисунков. Представляет собой хранилище для нескольких рисунков одинакового размера.
|
|
RichEdit
|
Многострочный редактор форматированного текста. В отличие от компонента Memo страницы Standard текст в компоненте RichEdit подчиняется правилам Расширенного Текстового Формата (RTF-Rich Text Format) и может изменять такие свои характеристики, как шрифт, цвет, выравнивание и т.д.
|
|
TrackBar
|
Регулятор. Используется для управления значениями некоторых величин в программах. Например, с его помощью удобно изменять громкость звучания в мультимедийных программах.
|
|
ProgressBar
|
Индикатор процесса. С помощью этого компонента можно отображать ход исполнения достаточно длительного по времени процесса, например, процесса переноса данных на дискету.
|
14
Продолжение таблицы 4
|
UpDo\vn
|
Цифровой регулятор. Две кнопки этого компонента предназначены для увеличения (верхняя) или уменьшения (нижняя) связанной с компонентом числовой величины.
|
|
HotKey
|
Управляющая клавиша. Компонент используется для ввода управляющих клавиш, таких как Fl, Alt+A, Ctrl+Shift+1 и т.п.
|
|
Animate
|
Мультипликатор. Предназначен для отображения последовательно сменяющих друг друга кадров движущихся изображений (видеоклипов). Компонент не может сопровождать видеоклип звуком.
|
|
DateTime-Picker
|
Селектор времени/даты. Этот компонент предназначен для ввода или отображения даты или времени.
|
|
Tree View
|
Дерево выбора. Представляет собой совокупность связанных в древовидную структуру пиктограмм. Обычно используется для просмотра структуры каталогов (папок) и других подобных элементов, связанных иерархическими отношениями.
|
|
List View
|
Панель пиктограмм. Организует просмотр нескольких пиктограмм и выбор нужной. Этот компонент способен располагать пиктограммы в горизонтальных или вертикальных рядах и показывать их в крупном или мелком масштабе.
|
|
Header-Control
|
Управляющий заголовок. Представляет собой горизонтальную или вертикальную полосу, разделенную на ряд смежных секций с надписями. Размеры секций можно менять мышью на этапе работы программы. Обычно используется для изменения размеров столбцов или строк в разного рода таблицах. |
|
StatusBar
|
Панель статуса. Предназначена для размещения разного рода служебной информации в окнах редактирования. Посмотрите на нижнюю часть рамки окна кода Delphi или текстового редактора Word, и вы увидите этот компонент в действии. |
|
ToolBar
|
Инструментальная панель. Этот компонент служит контейнером для командных кнопок BitBtn и способен автоматически изменять их размеры и положение при удалении кнопок или при добавлении новых.
|
|
CoolBar
|
Инструментальная панель. В отличие от ToolBar используется как контейнер для размещения стандартных интерфейсных компонентов Windows, таких как Edit, ListBox, ComdoBox и т.д. |
|
Page Scroller
|
Прокручиваемая панель. Служит для размещения узких инструментальных панелей. При необходимости автоматически создает по краям панели стрелки прокрутки.
|
Для того, чтобы перенести компонент на форму необходимо щелкнуть левой кнопкой мыши на палитре компонентов, а затем еще раз на поле формы. Для того, чтобы Delphi создала заготовку подпрограммы для обработки события необходимо два раза щелкнуть левой кнопкой мыши по компоненту.
1.5 Некоторые свойства компонентов.
Общие свойства.
Caption-заголовок;
Name -имя(Это имя будет фигурировать в тексте кода программы. Delphi сама дает имена компонентам, но для удобства их рекомендуется поменять);
Свойства положения, размеров и оформление компонентов.
Height-высота;
Left-положение левой кромки;
Top-положение верхней кромки;
15
Width- ширина;
Align-свойство, определяющее выравнивание положения компонента относительно контейнера, в котором он размещен. Это свойство имеет следующие значения:
alNone- нет свойства;
alTop- прижатие к верхней кромке;
alBottom- нижней;
alLeft- левой;
alRight- правой;
alClient- заполнение всего не занятого другими компонентами места.
Visible- определяет видимость компонента.
Enabled- определяет возможность активизации компонента.
Font- задаваемый шрифт.
Alignment- регулирует расположение текста относительно границ компонента:
taLeftJustify- прижать к левой границе;
taRidhtJustify - прижать к правой границе;
taCenter- расположить по центру.
Ctl3d- реализует объемность изображения.
Color-цвет, который заливает видимую часть.
Установка цвета, объемности, шрифта и подсказки как у родителя.
Anchors- фиксирует дочерний компонент относительно границ контейнера, в котором он размещен.
Свойства справочной службы.
Hint-строка символов, представляющая собой всплывающую подсказку;
ShowHint- разрешение отображения подсказки;
HintColor-цвет фона ярлычка.
Свойства компонентов страницы STANDARD.
Label-метка для отображения текста.
A
14
меры в зависимости от помещенного в ее свойство Cap
tion текста: True -будет.
Layout: Определяет выравнивание текста по вертикали относительно границ метки: tITop - текст располагается вверху; tICenter - текст центрируется по вертикали; tIBottom - текст располагается внизу.
Wordwrap Разрешает/запрещает разрыв строки на границе слова. Для вывода многострочных надписей задайте AuroSize=False, WordWrap=True и установите подходящие размеры метки.
16
Transparent:Определяет прозрачность фона метки. Если False, фон закрашивается собственным цветом Color, в противном случае используется фон родительского компонента.
Edit- строка ввода.
AutoSize: Если содержит True и BorderStyle=bsSingle, высота компонента автоматически меняется при изменении свойства Font.Size.
BorderStyle Определяет стиль обрамления компонента: bsNone -нет обрамления; bsSingle - компонент обрамляется одной линией
CharCase Определяет автоматическое преобразование высоты букв: ecNormal - нет преобразования; ecUpperCase -все буквы заглавные; ecLowerCase - все буквы строчные. Правильно работает с кириллицей.
MaxLength: Определяет максимальную длину текстовой строки. Если имеет значение 0, длина строки не ограничена.
Modified: Содержит True, если текст был изменен.
OnChange: Определяет обработчик события OnChange, которое возникает после любого изменения текста.
SelLength: Содержит длину выделенной части текста.
SelText: Содержит выделенную часть текста.
Text: Содержит весь текст.
Memo- ввод и отображение текста.
ScrollBars: Определяет наличие в окне редактора полос прокрутки: ssNone - нет полос; ssHorizontal - есть горизонтальная полоса; ssVertical - есть вертикальная полоса; ssBoth - есть обе полосы.
WantReturns: Если содержит True, нажатие Enter вызывает переход на новую строку, в противном случае -обрабатывается системой. Для перехода на новую строку в этом случае следует нажать Ctrl+Enter.
WantTabs: Если содержит True, нажатие Tab вызывает ввод в текст символа табуляции, в противном случае -обрабатывается системой. Для ввода символа табуляции в этом случае следует нажать Ctrl+Tab.
Lines: Содержит строки текста.
CaretPos: Содержит координаты мигающего текстового курсора относительно границ клиентской области компонента
Button-кнопка.
Cancel: Если имеет значение True, событие OnClick кнопки возникает при нажатии клавиши Esc.
Default: Если имеет значение True, событие OnClick кнопки возникает при нажатии клавиши Enter.
CheckBox-независимый переключатель.
AllowGrayed: Разрешает/запрещает использование состояния cbGrayed (He знаю).
Caption: Содержит связанный с компонентом текст.
Checked: Содержит выбор пользователя типа Да/Нет. Состояния cbUnchecked и cbGrayed отражаются как False.
17
State: Содержит состояние компонента: cbUnchecked - нет; cbChecked - да; cbGrayed — не знаю.
ScrollBar-управление значением величины.
K
16
бегунок перемещается по горизонтали; sbVertical - бегунок перемещается по вертикали.
LargeChange: «Большой» сдвиг бегунка (при щелчке мышью рядом с концевой кнопкой).
Max: Максимальное значение диапазона изменения числовой величины.
Min: Минимальное значение диапазона изменения числовой величины.
Position: Текущее значение числовой величины.
SmallChange: «Малый» сдвиг бегунка (при щелчке мышью по концевой кнопке).
Panel-панель.
BorderStyle: Определяет стиль рамки: bsNone - нет рамки; bsSingle - компонент по периметру обводится линией толщиной в 1 пиксель.
FullRepaint: Разрешает/запрещает перерисовку панели и всех ее дочерних элементов при изменении ее размеров.
Некоторые свойства страницы ADDITIONAL.
BitBtn-кнопка с изображением.
Glyph: Определяет растровое изображение кнопки.
(Delphi содержит в каталоге Borland/ Borland Chared/Images/Buttons много пиктографических изображений кнопок.)
Kind: Определяет разновидность кнопки
Layout: Определяет край кнопки, к которому прижимается пиктограмма: bIGlyphLeft - к левому; bIGlyphRight - к правому; bIGlyphTop - к верхнему; biGlyphBottom - к нижнему.
Margin: Определяет расстояние в пикселях от края кнопки до пиктограммы.
Spacing: Определяет расстояние в пикселях от пиктограммы до надписи на кнопке.
Style: Определяет стиль оформления кнопки, зависящий
от операционной системы. Стиль bsNew соответствует 32-
разрядным версиям Windows. Стиль bsAutoDetect изменяет оформление кнопки в зависимости от ОС, под управлением которой работает программа в данный момент.
2. Лабораторные задания и методические указания по их выполнению
Необходимо решить задачу: реализовать функцию Y=A+B, при этом должен быть предусмотрен ввод А и В с клавиатуры и с помощью генератора случайных чисел.
18
Для решения этой задачи надо сконструировать
форму
19
20
У данных компонентов в Инспекторе Объектов установите следующие свойства:
Form: caption "Лабораторная работа № 1";
Panel: Align alClient;
Label1(первая метка): Сaption "Ввод А";
Label2(вторая метка): Сaption "Ввод В";
Label 3(третья метка): Сaption "Результат";
Status Bar: Align alBottom;
BitBtn1: Kind bkOK;
BitBtn2: Kind bkCustom; Caption "ГСЧ"
BitBtn3: Kind bkClose;
При выполнении двойного щелчка на кнопке Delphi создает заготовку подпрограммы для реализации события OnClick (по щелчку).
Для решения данной задачи понадобятся следующие функции:
S
17
18
функция переводит строку символов, содержащуюся в строке
ввода в вещественное число.
FloatToStr (А), где А- вещественная переменная. Функция, обратная предыдущей.
Randomize Подключает Генератор случайных чисел.
Random(B), где В- целое число, задающая диапазон из которого выбирается случайное число. Выбирает случайное целое число.
Как только вы нажмете F9- компиляция, появится диалоговое окно Save Unit1 AC, в котором Delphi попросит указать имя файла для модуля Unit1.pas и папку его размещения (По умолчанию Delphi предлагает разместить файл модуля и проекта в системной папке BIN) Обязательно! измените ее на вашу рабочую папку.(Например IVANOV_DELPH)
Лучше не идти на поводу у Delphi и не соглашаться с предложенным именем Unit1.pas, а присвоить модулю какое- нибудь свое имя, например инициалы студента IPN.
Затем Delphi попросит задать имя еще для проекта программы Под этим именем будет создан исполняемый EXE файл, например FIRSTPGM.
Чтобы открыть ранее созданную форму надо из опции File выбрать Open и выбрать имя модуля программы.
После отладки программы и показа ее преподавателю необходимо на форме:
Поменять пиктографическую картинку на первой кнопке;
Поменять шрифт и цвет надписи на второй кнопке;
Сделать кнопку Close недоступной;
19
Подключить всплывающую подсказку на все три кнопки;
Сделать цвет метки зеленым;
Сделать третью строку ввода плоской;
Панель обвести рамкой;
Все три кнопки зафиксировать относительно левого и нижнего края панели;
Сделать первую строку ввода невидимой.