Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные по Дельфи_2011.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
7 Мб
Скачать
☆

Лабораторная работа № 3. Свойства Объектов.

Итак, мы научились изменять свойства компонентов во время проектирования программы. Но иногда бывает нужно что-то изменить уже в процессе работы программы. Например, поменять название на кнопке, изменить размер и цвет формы и т.п.?

1. Свойства компонентов можно изменять во время работы приложения, т.е. программно. Для этого надо написать строку, в которой свойству с помощью оператора := присваивается нужное значение.

р ис 1.

Откройте Delphi. Поместите на форму две кнопки Button1 и Button2. Кнопке Button1 поставьте свойство left= 50. В результате, кнопка окажется на расстоянии 50 пикселов слева от начала формы. Кнопку Button2 поместите ниже.

Два раза щелкните по кнопке Button2 и между строками begin ... end введите: button1.Left :=250;

Составное имя button1.Left необходимо для указания компилятору, о каком объекте идет речь: в нашем примере используются 3 компонента (форма и 2 кнопки) и каждый из них имеет свойство Left; префикс Button2 заставляет изменить это свойство у кнопки с именем Button2.

Запустите программу. Так изменяются свойства объекта не с помощью Инспектора Объектов, а в режиме выполнения, программно.

Закройте программу. Вы вернетесь в режим проектирования. Откройте модуль программы- это то окно, которое находится позади формы, щелкнув по нему мышью или нажав F12.

Д авайте внимательно посмотрим на это окно — код вашей программы. Наш файл, пока не сохраненный называется Unit1:

В программе используются 3 объекта: форма с именем Form1 и 2 кнопки с именами Button1 и Button2.

В программе используется только одна процедура- процедура обработки щелчка второй кнопки.

Текст самих процедур записывается после раздела implementation и заключается в конструкцию begin...end.

Самостоятельно:

измените программу так, чтобы при нажатии на первую кнопку форма приобретала красный цвет, а при нажатии на вторую кнопку: синий и посмотрите как меняется окно кода.

Написать программу "Нажималка".

2. Создать программу, на экране которой изображена кнопка. При нажатии на нее кнопка должна перепрыгивать на 100 пикселов вправо.

Откройте Delphi. Поместите на форму кнопку.

Теперь давайте рассуждать. Надо чтобы при нажатии на кнопку она перемещалась на 100 единиц вправо, т. е. реагировала на щелчок. Следовательно, надо написать обработчик нажатия клавиши.

В Object Inspector (инспекторе объектов) перейдите на вкладку Events (События) и щелкните 2 раза напротив поля OnClick (при нажатии).

З а положение компонента на форме отвечает свойство Left. Следовательно, его и необходимо изменить: В процедуре: procedure TForm1.Button2Click(Sender: TObject)

Между begin и end напишите: button1. Left := 100;

Напомню в информатике приходится иметь дело с выражениями типа: x := x+1; С точки зрения математики тождество ложное, в информатике же это значит, что нужно взять из переменной х число, прибавить к нему 1 , и результат опять поместить в эту переменную. (Переменная играет роль ящика, в который складывают или берут числа).

Запустите программу, проверьте, работает ли кнопка.

Оказывается, работает, если нажать один раз. Во второй раз она уже не двигается. Чтобы передвинуть кнопку еще на 100 пикселов надо написать button1.Left := 200;

Попробуйте. Запустите программу, проверьте. Кнопка переместилась сразу на 200 пикселей. Программа сделает эти два оператора, но ВЫ не увидите, потому что скорость выполнения огромна. Нужно придумывать что-либо другое.

Сотрите предыдущие операторы и на их месте наберите: Button1.left:= Button1.left+200;

Программа должна взять из переменной button1.left число, прибавить к нему 200 и результат опять поместить в эту переменную.

Запустите программу, попробуйте. Программа должна работать как надо.

Запомните этот прием. Он применяется очень часто.

3. Одно из самых используемых свойств любого компонента- видимость. С помощью него можно до поры спрятать какой-либо элемент. Задача: написать программу, в которой кнопка при нажатии на нее скачет по периметру формы, перемещаясь по часовой стрелке.

Наша задача создать такую же программу.

рис 1.

Начните новый проект и сохраните его под названием lab_3.

На форму поместите 8 кнопок, как на рис.1

Надпись и размеры кнопок должны быть одинаковыми. Для этого нужно выделять кнопки по очереди и изменять их свойство Caption. Но придется 8 раз делать одно и тоже. Процедура займет некоторое время. Есть другой способ. Выделите все кнопки и измените необходимые значения. Нажмите клавишу SHIFT и щелкайте мышкой по очереди все кнопки.

Выберите в Object Inspector свойство Caption и измените его на такое: Нажми меня.

Свойство Visible для всех кнопок поставьте равным False (Их не будет видно в начале).

Снимите выделение со всех кнопок, щелкнув на любом месте формы.

Выделите 1-ую кнопку, щелкнув по ней мышью, и свойство Visible этой кнопки поставьте True. Именно первая кнопка будет видна после загрузки.

Запустите программу. Если на вашей форме видна только одна первая кнопка, значит все сделано верно.

Закройте программу и вернитесь в режим проектирования.

Теперь дело за программированием.

Создадим имитацию прыжка. Сделаем видимой кнопку 2, а кнопку 1 спрячем.

Двойным щелчком по кнопке 1 войдите в обработчик события.

Допишите между begin … end; следующее:

procedure TForm1.Button1Click(Sender: TObject);

begin

button1.Visible:=false;

button2.Visible:=true;

end;

Запустите программу. Проверьте. После щелчка на кнопке, кнопка 1 исчезает, а 2-ая кнопка появляется, а создается ощущение, что прыгнула 1-ая кнопка.

Для второй кнопки обработчик такой: 2-ую кнопку прячем, 3-ью показываем. И т.д…

Сделайте это самостоятельно.