Лабораторная работа №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. Окно Формы «Меню»
Создайте проект. Назовите форму «Меню» (свойство Caption), сохраните в папке «6» модуль и проект под именами соответственноUnitMenu иProjectMenu, дайте форме имяFormMenu (свойствоName). Вид формы представлен на рис. 25.
Установите в любом месте формы компонент TMainMenu (главное меню) со страницыStandard (стандартные). Этот объект не будет видимым при работе программы. Выполните двойной щелчок на объекте. Появилось окно для создания меню. В свойствеCaption (заголовок) для пунктов меню последовательно впишите: «Фигуры», «Шар», «Прямоугольник», «Эллипс». Дайте имена пунктам меню с помощью свойстваName (имя):Figures, Circle, Rectangle иEllipse.
Со страницыAdditional (дополнительные) поместите на форму компонентTShape (фигура) и в свойствеShape (фигура) выберите значение:stCircle (круг). С помощью свойстваName (имя) дайте объекту имяsh_Circle. Теперь поместите на форму еще два компонентаTShape и выберите для них в свойствеShape (фигура):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;