Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_rab_3.docx
Скачиваний:
7
Добавлен:
09.02.2015
Размер:
294.61 Кб
Скачать

Лабораторная работа №3 Упражнение Условие

В этом упражнении вы будете учиться применять условное предложение и познакомитесь с одной математической функ­цией.

Создайте проект. В Строке заголовка формы введите: «Усло­вие» (свойство Caption). Форме дайте имяFormUslovie(свойст­воName). Вид формы представлен на рис. 24. Сохраните модуль и проект под именами соответственноUnitUslovieиProjectUs-lovieв папке «5».

Познакомимся сначала с величинами, описывающими поло­жение и размеры объекта в окне формы (рис. 1):

Left— расстояние от левой границы объекта до левой грани­цы окна формы.

Тор — расстояние от верхней границы объекта до верхней границы окна формы.

Width— ширина объекта.

Height— высота объекта.

Единицей измерения для перечисленных свойств является пиксель.

Рис. 1. Свойства, определяющие размер и положение объекта на форме

Поместите на форму кнопку TBitBtn со страницыAdditional (дополнительные). В свойствеCaption (заголовок) удалите текст. Создайте для кнопки такую процедуру, что ширина кнопки будет увеличиваться. Для этого выделите кнопку, в Ин­спекторе объектов на листе событийEvents выполните двойной щелчок в окошке событияOnClick (щелчок). В модуле, в теле процедуры запишите:

ifBitBtnl.Width<100then BitBtnl.Width:=BitBtnl.Width+10

else BitBtnl.Width:=BitBtnl.Width div 2;

Действие этой процедуры: пока ширина кнопки меньше 100, она увеличивается на10. Если ширина кнопки становится рав­ной100, она уменьшается в 2 раза. Здесь используется функция целочисленного деленияdiv.

Рис. 2. Окно Формы «Условие»

Запишите теперь процедуру так, чтобы вместе с шириной из­менялась и высота. После слова then (то) будут уже не один, а два оператора, поэтому их необходимо заключить в оператор­ные скобки:

begin

BitBtnl.Width:=BitBtnl.Width + 10;

BitBtnl.Height:=BitBtnl.Height + 10; end;

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

После слова else (иначе) также будет два оператора. Заклю­чите в операторные скобки и их:begin

BitBtnl.Width:=BitBtnl.Width div 2;

BitBtnl.Height:=BitBtnl.Height div 2; end;

Сохраните изменения и запустите Проект на выполнение (F9).

С этой кнопкой можно поэкспериментировать:

  • изменять предельное значение ширины и высоты кнопки;

  • изменять значения увеличения размеров при каждом щелчке на кнопке;

  • изменять операторы условия else (иначе).

Добавьте на форму еще одну кнопку. Для щелчка на кнопке создайте следующую процедуру:

BitBtn2.Width:=150; //изменение ширины кнопки

BitBtn2.Height:=150; //изменение высоты кнопки

BitBtn2.Caption:='Молодец!';

// изменение текста на кнопке BitBtn2.Font.Color:=clRed;

{изменение цвета шрифта текста на кнопке} BitBtn2.Font.Size:=24;

{изменение размера шрифта текста на кнопке}

Сохраните изменения и запустите проект на выполнение (F9).

Упражнение Меню

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

Рис. 3. Окно Формы «Меню»

Создайте проект. Назовите форму «Меню» (свойство Capti­on), сохраните в папке «6» модуль и проект под именами соот­ветственноUnitMenu иProjectMenu, дайте форме имяFormMenu (свойствоName). Вид формы представлен на рис. 25.

Установите в любом месте формы компонент TMainMenu (главное меню) со страницыStandard (стандартные). Этот объ­ект не будет видимым при работе программы. Выполните двой­ной щелчок на объекте. Появилось окно для создания меню. В свойствеCaption (заголовок) для пунктов меню последова­тельно впишите: «Фигуры», «Шар», «Прямоугольник», «Эл­липс». Дайте имена пунктам меню с помощью свойстваName (имя):Figures, Circle, Rectangle иEllipse.

Со страницыAdditional (дополнительные) поместите на фор­му компонентTShape (фигура) и в свойствеShape (фигура) вы­берите значение:stCircle (круг). С помощью свойстваName (имя) дайте объекту имяsh_Circle. Теперь поместите на форму еще два компонентаTShape и выберите для них в свойствеSha­pe (фигура):stRectangle (прямоугольник) иstEllipse (эллипс). С помощью свойстваName дайте объектам имена со­ответственноsh_Rectangle иsh_Ellipse. Для всех фигур выбери­те свойствоVisible (видимый) и сделайте его равнымFalse (ложь). Значение этого свойства можно выбрать одновременно для всех трех компонентов, щелкая на них указателем мыши при нажатой клавишеShift. Первоначально фигуры будут невидимы и появятся только при щелчке по соответствующему пункту меню. Закрасьте фигуры в различные цвета, для этого воспользуйтесь свойствомBrush | Color (кисть | цвет).

Запишите текст процедуры, которая будет выполняться при щелчке на пункте меню «Шар». Для этого в окне FormMenuMa-inMenul щелкните дважды на строке «Шар». Если окно отсут­ствует на экране, то его можно открыть двойным щелчком на объектеMainMenul (главное меню).

Впишите между операторными скобками следующий опера­тор:

FormMenu.sh_Circle.Visible:=True;

Этот оператор делает видимой первую фигуру (шар).

Теперь создайте процедуры для пунктов меню «Прямоуголь­ник» и «Эллипс». В тела процедур впишите операторы:

FormMenu.sh_Rectangle.Visible:=True; и

FormMenu.sh_Ellipse.Visible:=True;

Эти операторы делают видимыми вторую (прямоугольник) и третью (эллипс) фигуры.

Сохраните изменения и запустите проект (клавиша F9).

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

FormMenu.sh_Rectangle.Visible:=False;

FormMenu.sh_Ellipse.Visible:=False;

Эти операторы делают невидимыми вторую и третью фигу­ры, когда открыта первая фигура.

Операторы для остальных пунктов меню запишите самостоя­тельно.

Сохраните изменения и запустите проект.

Теперь используем системные часы для того, чтобы сделать фигуры видимыми лишь некоторое время. На странице System (системные) найдите компонентTTimer (таймер) и поместите его на форму. Этот объект также как иMainMenul будет неви­димым, поэтому вы можете поместить его в любое место формы. СвойствоEnabled (включено) для часов выберите:False (ложь). Сейчас таймер выключен.

Добавьте в тело процедуры для пункта меню «Шар» следую­щий оператор:

FormMenu.Timer1.Enabled:=True;

Часы включились. Чтобы выключить часы и сделать Шар невидимым надо создать процедуру для часов. Для этого дважды щелкните на объекте Timer1 и в тело процедуры впишите операторы:

FormMenu.sh_Circle.Visible:=False; FormMenu.Timerl.Enabled:=False;

Первый оператор делает фигуру невидимой. Второй оператор выключает таймер.

Сохраните изменения и запустите проект.

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

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

Далее приводится листинг всей программы:

unit UnitMenu;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]