Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Топ:
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Интересное:
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Дисциплины:
2019-12-27 | 237 |
5.00
из
|
Заказать работу |
|
|
if not ((Key >= '0') and (Key <='9') or (Key = #8))
then Key:= Chr(0);
end;
7. Проверить работу приложения на различных значениях (целых и вещественных).
8. Модернизировать приложение для того, чтобы вычисление выполнялось не только при щелчке по кнопке Пересчет, но и при нажатии Enter после ввода последней цифры в поле Скорость. Для этого:
§ создать новую процедуру:
- перед End. ввести Procedure WindSpeed;
- переместить в нее весь код процедуры Button 1 Click;
§ для процедуры Button 1 Click ввести новый код:
procedure TForm1.Button1Click(Sender: TObject);
begin
WindSpeed; // пересчитать скорость
end;
§ внести изменения в процедуру Edit 1 KeyPress:
begin
// #13 - клавиша <Enter>
case Key of
'0'..'9',#8:; // цифры и < Backspace >
#13: WindSpeed; // пересчитать скорость
else Key:= Chr(0); // остальные символы не отображать
end;
9. Проверить работу приложения.
10. Сохранить проект. Результат показать преподавателю.
Задания для самостоятельного выполнения
Задание №1
Разработать приложение для пересчета массы из фунтов в килограммы (1 фунт = 409,5 грамм). Кнопка Пересчет должна быть доступна только в том случае, если пользователь ввел исходные данные. Разрешается вводить целые и вещественные значения (разделитель точка и только одна). Добавить на форму кнопку, при щелчке по которой удаляются значения из полей ввода и вывода.
Задание №2
Разработать приложение, которое вычисляет скорость (км/час), с которой спортсмен пробежал дистанцию. Рекомендуемый вид формы приведен на рисунке. Количество минут задается целым числом, секунд – вещественным.
Задание №3
Разработать приложение для вычисления сопротивления электрической цепи, состоящей из двух сопротивлений. Сопротивления могут быть соединены последовательно или параллельно. Рекомендуемый вид формы приведен на рисунке. Если величина сопротивления цепи превышает 1 000 Ом, то результат должен быть выведен в килоомах.
|
Задание №4
Разработать приложение для вычисления стоимости покупки с учетом скидки. Скидка 1% предоставляется, если сумма покупки больше 300 руб., 2% - если больше 500 руб., 3% - если больше 1000 руб. Информация о предоставленной скидке (процент и величина) должна быть выведена в диалоговое окно. Рекомендуемый вид формы приведен на рисунке.
Задание №5
Разработать приложение для вычисления стоимости проезда на автомобиле на дачу. Рекомендуемый вид формы приведен на рисунке.
Контрольные вопросы
1. Когда происходит событие KeyPress?
2. Значения какого типа возвращают объекты Edit, Label?
3. Какие объекты позволяют вводить (выводить) значения?
4. Можно ли для одного объекта создать две процедуры обработки события?
ПРАКТИЧЕСКАЯ РАБОТА № 3
Тема: Программированиесобытий KeyPress, KeyDown,KeyUp.
Цель работы: Получить навыки создания процедур обработки событий, связанных с клавиатурой. Получить навыки использования объектов Image, Shape и Timer.
Пояснения к работе:
Приложение Delphi реагирует на события – сигнал от мыши, клавиатуры и системные события. Различные объекты могут реагировать на различные совокупности событий. При организации реакции на события можно:
· проигнорировать событие, т.е. не писать процедуру для реакции на это событие;
· перехватить событие, для этого нужно написать текст процедуры – обработчика события.
Имя процедуры - обработчика события состоит из имени объекта, на котором произошло событие и имении события. Все события в Delphi принято именовать с префиксом ‘On’. События различны, но общим для них является параметр Sender – отправитель, он указывает на источник события. Традиционно может быть предусмотрена реакция на 3 вида событий от пользователя: нажатие или отпускание любой из кнопок мыши (MouseUp,MouseDown), перемещение курсора (MouseMove) и нажатие клавиш (KeyUp, KeyDown, KeyPress).
|
Обработчику события передаются:
Sender источник сообщения;
Shift состояние специальных клавиш и кнопок мыши во время нажатия (отпускания);
Key код нажатой клавиши (для событий KeyUp, KeyDown), символ, соответствующий нажатой буквенно-цифровой клавише (событие KeyPress);
X, Y координаты положения курсора.
Компонент Image обеспечивает вывод на поверхность формы иллюстраций, представленных в bmp, jpg, ico, wmf-форматах.
Свойства Image:
Picture иллюстрация, которая отображается в поле компонента;
Width, Height размер компонента. Если размер компонента меньше размера иллюстрации, и значение свойств AutoSize, Strech, Proportional, равно False, то отображается часть иллюстрации;
Proportiona l признак автоматического масштабировании картинки без искажения. Чтобы масштабирование было выполнено, значение свойства AutoSize должно быть False;
Strech признак автоматического масштабировании (сжатия или растяжения) иллюстрации в соответствии с реальным размером компонента. Если размер компонента непропорционален размеру иллюстрации, то она будет искажена.
AutoSize признак автоматического изменения размера компонента в соответствии с реальным размером иллюстрации;
Center признак определяет расположение картинки в поле компонента, если ширина картинки меньше ширины поля компонента. Если значение False, то картинка прижата к правой границе, если True то по центру.
Компонент Timer обеспечивает генерацию последовательности событий OnTimer.
Свойства Timer:
Interval период генерации событияOnTimer, задается в миллисекундах;
Enabled разрешение работы.разрешает (значение true) или запрещает (значение false) генерацию событий OnTimer
Компонент Shape предназначен для рисования фигур.
Свойства Shape:
Shape определяет тип фигуры;
Brush определяет стиль и цвет заполнения фигуры;
Pen определяет стиль, цвет и толщину границ фигуры.
Постановка задачи:
В верхней части окна приложения непрерывно движется объект «Противник». В нижней части окна – объект «Охотник», который может перемещаться влево и вправо, а также стрелять в «Противника» вверх пулей. При попадании пули в «Противника» объект «Охотник» увеличивает свои баллы. Цель может быть опасна, т.к. сбрасывает объект «Бомбочки», которые при попадании в охотника уменьшают его баллы.
В начале игры у «Охотника» 10 баллов. Игра заканчивается победой, если «Охотник» удваивает баллы, и поражением, если баллы равны нулю.
|
Порядок выполнения:
samolet.Left:=samolet.Left +1;
If samolet.Left >300 Then samolet.Left:=-30;
If key=37 then men.Left:=men.Left-10;//влево
If key=39 then men.Left:=men.Left+10;//вправо
If key=32 then //нажат пробел
Begin
pula.Visible:=true;
pula.Left:=men.Left;
pula.Top:=men.Top-pula.Height;
timer2.interval:=10;
End;
pula.Top:=pula.Top-5;
If pula.top<0 then
Begin
timer2.Interval:=0;
pula.Visible:=false;
End;
Var
x,y,h,w:integer;// координаты и размеры пули
x0,y0,h0,w0:integer; // координаты и размеры самолета
begin
pula.Top:=pula.Top-5;
If pula.top<0 then
Begin
timer2.Interval:=0;
pula.Visible:=false;
End;
x:=pula.left; y:=pula.Top;
w:=pula.Width; h:=pula.Height;
x0:=samolet.Left; y0:=samolet.Top;
w0:=samolet.Width;h0:=samolet.Height;
if (x+w>x0) and (x<x0+w0) and (y+h>y0) and (y<y0+h0) then
result.Caption:=inttostr(strtoInt(result.Caption)+1);
end;
If Bomba.Visible =False Then
Begin
Bomba.Visible:=True;
Bomba.Left:=Samolet.Left+5;
Bomba.Top:=Samolet.Top+5;
End
Else
Begin
Bomba.Top:=Bomba.Top+1;
If Bomba.top>men.Top+30 Then Bomba.Visible:=False;
|
End;
Задания для самостоятельного выполнения
Задание №1
Модифицировать разработанное приложение: добавить еще один «летательный» объект, скорость и направление движения объектов должна быть различна. Программа должна добавлять баллы при попадании в любой из объектов. Оба объекта могут сбрасывать «бомбы»
Задание №2
Разработать игру «Клавиатурный тренажер», который работает следующим образом:
· сверху вниз «падает» буква(метка с одной буквой, код буквы -случайное число от 192 до 223). Если буква «упала», то сверху начинает падать другая буква;
· игрок должен нажать соответствующую клавишу на клавиатуре;
· программа должна регистрировать количество ошибок (клавиша нажата неверно или буква «упала» и кнопка не была нажата);
· если количество ошибок превысит 10, то игрок проиграл.
Задание №3
Расположить на форме таймер, фигуру «круг» и фигуру «прямоугольник». Разработать приложение, которое работает следующим образом:
· прямоугольник выполняет роль лапты, он перемещается влево и вправо при нажатии клавиш. ®
· круг - это мячик, который постоянно прямолинейно двигается, при столкновении с границами формы или лаптой меняет свое направление на противоположное.
Задание №4
Разработать приложение «Колобок», которое должно работать следующим образом:
· «колобок» постоянно жует (открывает /закрывает рот) и прямолинейно движется;
· при нажатии клавиш ® ↓ ↑ «колобок» меняет направление движения и «смотрит» туда, куда движется.
Контрольные вопросы
1. В каких случаях используется таймер? Что определяет свойство Interval?
2. Как остановить работу таймера?
3. Как определить код нажатой клавиши?
4. На какие события реагирует компонент Shape?
ПРАКТИЧЕСКАЯ РАБОТА № 4
Тема: Элементы пользовательского интерфейса.
Цель работы: Получить навыки создания меню, панели инструментов и настройки формы.
Пояснения к работе
Создание меню
В приложениях, написанных на Delphi, могут быть реализованы меню двух основных типов:
Пункт меню может быть в виде подменю или команды. При выборе пункта меню инициируется событие OnClick.
Для создания меню надо:
· поместить на форму компонент MainMenu или PopupMenu;
|
· вызвать разработчик меню, дважды щелкнув по компоненту;
· написать название пункта (Caption) и нажать Enter;
· под первым пунктом появится заготовка для ввода пункта подменю, а справа – для ввода следующего пункта главного меню.
Для каждого пункта меню можно назначить горячие клавиши (свойство ShortCut), подсказку (Hint), картинку (Bitmap).
Панель инструментов
Панель инструментов представляет собой управляющий элемент, предназначенный для упрощения выбора часто используемых команд. Панели могут быть статическими (прикрепленными к некоторому краю окна) или плавающими, которые можно перемещать при выполнении приложения.
Способы создания панели инструментов:
· на основе компонента Panel (Standard):
на панели размещают кнопки быстрого доступа (SpeedButton) и комбинированные списки (ComboBox);
· с помощью компонента ToolBar (Win32):
компонент автоматически задает для всех кнопок, размещенных на ней, одинаковые размеры, упорядочивает их расположение;
· с помощью компонента CoolBar (Win32):
эту панель инструментов можно настраивать и менять ее местоположение при выполнении программы.
Настройка формы
При запуске Delphi автоматически создает основную форму с именем Form1. На форме можно разместить главное меню и строку состояния, размещать элементы управления работы приложения, выводить текст и графику. Если приложение состоит из нескольких форм, то первая из созданных форм является главной. Ей передается управление в начале работы приложения, ее закрытие вызывает завершение выполнения приложения.
Формы имеют ряд свойств, которые определяют вид и поведение окна программы:
BorderStyle – определяет вид рамки окна
bsDialod диалоговая; bsSizeable обычная;
bsSingle форма с неизменяемыми параметрами;
bsNone не имеет рамки и заголовка;
BorderIcons - определяет набор кнопок в заголовке;
Icons определяет пиктограмму приложения;
AutoScroll – управляет появлением полос прокрутки;
Cursor определяет форму курсора мыши;
Enabled определяет реакцию на события от мыши, таймера и клавиатуры;
KeyPreview определяет, кто будет получать события от клавиатуры: форма или управляющий элемент на форме.
Menu позволяет выбрать один из доступных вариантов основного меню.
Постановка задачи
Разработать приложение «Состав компьютера». При выборе соответствующего пункта меню или пиктограммы на панели инструментов на экране отображается графическое изображение устройства и информация о назначении устройства. При наведении курсора отображается всплывающая подсказка о названии устройства.
Порядок выполнения
picMonitor.Visible:=true;
picKey.Visible:=false;
picMouse.Visible:=false;
picCd.Visible:=false;
· расположить на форме компонент ToolBar (Win32), присвоить имя Main Panel, для свойства EdgeBorders добавить значение ebBotton =True
· щелкнуть на созданной панели правой кнопкой мыши и выбрать NewButton, установить кнопке следующие свойства:
Hint монитор
MenuItem mnuMonitor
Name btnMonitor
ShowHint True
· аналогичным образом создать еще кнопки для остальных устройств и изменить их свойства;
· для добавления изображений командам и кнопкам добавить на форму компонент ImageList (Win32);
· дважды щелкнуть по компоненту, появится редактор, щелкните по кнопке Add и укажите размещение требуемых графических файлов \COMMON\GRAPHICS\ICONS\COMPUTER\... добавьте соответствующие файлы;
· связать набор пиктограмм с панелью инструментов и основным меню: для компонентов Main Menu 1 и Main Panel для свойства Images из списка выбрать ImageList 1;
· для каждого пункта меню и для каждой кнопки панели инструментов изменить значения свойства ImageIndex в соответствии с их назначением.
· расположить на форме таймер (System) и ввести для него код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
i: Integer;
begin
Application.Title:= a;
Form1.Caption:= a;
for i:= 1 to (Length(a) - 1) do
a[i]:= Application.Title[i + 1];
a[Length(a)]:= Application.Title[1];
end;
· объявить глобальную переменную a: string;
· в процедуру FormCreate ввести код
a:= 'Компьютер полезен равно настолько, насколько грамотен использующий его человек... ';
12. Проверить работу приложения.
13. Сделать форму прозрачной, для этого в процедуру FormCreate добавить код:
Form1.Brush.Style:= bsClear;
Form1.BorderStyle:= bsNone
14. Проверить работу приложения.
15. Отменить прозрачность формы.
16. Заполнить форму изображением, для этого:
form1.brush.bitmap:=image1.picture.bitmap
16. Проверить работу приложения.
17. Заблокировать введенный код.
18. Сделать форму полупрозрачной, для этого изменить значения следующих свойств:
AlphaBlend True, (включить полупрозрачность)
AlphaBlendValue 128 (степень прозрачности)
TransparentColorValue clBlack (какой цвет считать прозрачным)
TransparentColor True (включить прозрачность по цвету)
19. Проверить работу приложения.
20. Самостоятельно ввести код для пункта Выход, для того чтобы перед закрытием приложения форма постепенно «растворялась», т.е. от сплошного цвета переходила к прозрачному.
21. Результат показать преподавателю, проект сохранить.
Задания для самостоятельного выполнения
(номер вашего задания такой же, как в практической работе №3)
Задание №1
Модернизировать ранее созданное приложение:
1. Создать главное меню для реализации следующих функций:
2. Создать всплывающее меню, которое выводится при щелчке по «охотнику» и содержит три пункта для изменения высоты объекта
Задание №2
Модернизировать ранее созданное приложение:
1. Создать главное меню для реализации следующих функций:
Задание №3
Модернизировать ранее созданное приложение:
1. Создать главное меню для реализации следующих функций:
2. Создать всплывающее меню, которое выводится при щелчке по лапте и содержит два пункта: уменьшить длину, увеличить длину
Задание №4
Модернизировать ранее созданное приложение:
1. Создать главное меню для реализации следующих функций:
2. Создать всплывающее меню, которое выводится при щелчке по «колобку» и включающее в себя два пункта: пауза и пуск.
Контрольные вопросы
1. Какие типы меню существуют и как они создаются в приложении?
2. Какие возможности имеются для настройки меню?
3. Какие возможности имеются для настройки формы?
4. Какая последовательность создания панели инструментов?
ПРАКТИЧЕСКАЯ РАБОТА № 5
Тема: Элементы пользовательского интерфейса
Цель работы: Закрепить навыки проектирования интерфейса приложения, получить навыки использования стандартных диалоговых окон и буфера обмена.
Пояснения к работе
В данной работе используются новые компоненты:
· RichEdit многострочный редактордля работы с форматированным текстом в формате RTF,свойство компонента SelAttributes позволяет менять атрибуты шрифта для выделенного фрагмента текста;
· ColorBox – раскрывающийся список с образцами цвета;
· SpinEditor - окно редактирования со счетчиком для задания и показа данного значения;
· ImageList представляет собой набор пиктограмм, хранящихся на диске в файлах форматов.bmp и.ico. Размеры пиктограмм соответствуют кнопкам панели инструментов и командам меню. Доступ к каждой пиктограмме можно получить при помощи свойства ImageIndex – порядкового номера пиктограммы в наборе (нумерация с нуля).
· Компоненты стандартных диалогов:
На странице Dialogs палитры компонентов размещены пиктограммы 11 компонентов. Они реализуют стандартные диалоги общего назначения, используемые в приложениях Windows:
OpenDialog (открытие файла), SaveDialog (сохранение файла), FontDialog (форматирование шрифта), ColorDialog (палитра цветов), FindDialog (поиск), ReplaceDialog (замена) и др. Для вызова любого стандартного диалога используется метод Execute - функция возвращает логическое значение: при закрытии окна диалога кнопкой ОК – True, при отмене – False.
После закрытия стандартного диалога он возвращает через свои свойства значения, выбранные или установленные в процессе диалога. Например, при открытии файла возвращаемым значением является имя открываемого файла (OpenDialog1.FileName), а при выборе цвета - новый цвет (значение свойства ColorDialig1.Color).
|
|
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!