Работа с несколькими формами
Начальнае значения комнонентов устанавливаются при создании формы (Двойной щелчок по пустому месту формы возвращает к обработке события при создании формыJ procedure TForm1.FormCreate(Sender: TObject); Label1.Caption:=’’; Edit1.Text:=’0’; Чтобы в проекте использовать несколько форм, надо: 1) Создать новую форму (Файл – Создать – Форма). Появится форма Form2. 2) Для того, чтобы из первой формы открыть вторую при обработке какого-либо события, например, onButtonClick, необходимо в соответствующей процедуре набрать Form2.Show 3) При закрытии второй формы (команда Close) на экране снова появится первая форма. Внимание! Первая форма по умолчанию для проекта является главной (закрытие этой формы приводит к закрытию проекта). Если в любом месте проекта написать Form1.Close – проект закроется. form1.Hide; форма1 становится невидимой form2.Show; открытие фармы 2 form2.ShowModal – открытие формы2, причем она "блокирует" работу приложения до тех пор, пока она не будет закрыта. Form1.Close – проект закроется. Close; Сохранять проект в ту же папку (Файл – Сохранить проект как…)
Компонент Image Для размещения на форме картинки или рисунка используют компонент Image (вкладка Additional) палитры компонентов. Свойства компонента Image (основные): picture – выбор файла с картинкой; определяет выводимую картинку streitch – автоматический подбор размера картинки под отведенную область компонента proportional - сохранение пропорций в размере картинки при размещении в отведенную область компонента height – высота картинки width – ширина картинки visible – видимость картинки top ‑ расстояние от верхней границы компонента до верхней границы формы left ‑ расстояние от левой границы компонента до левой границы формы align – способы размещения данного компонента на форме alNone – настройка «вручную» alBottom – «прижать» к нижнему краю alTop – «прижать» к верхнему краю alLeft – «прижать» к левому краю alRight ‑ «прижать» к правому краю alClient – развернуть на весь родительский компонент (форму)
Чтобы разместить готовую картинку из любого файла на диске в компоненте в Инспекторе объектов выберем свойство Picture и, щелкнув по многоточию, выбрать файл. Запустив программу, заметим, что по умолчанию в отведённой области компонента Image виден лишь «кусочек» картинки, соответствующий размеру компонента Image. Один из возможных выходов – изменить размеры этого компонента, т. е. свойства Top, Left, Width и Height. Ещё один выход – воспользоваться свойством Streitch, которое позволяет «вписать» картинку в уже имеющиеся габариты компонента Image.
Задача 1: Компьютер «задумывает» число-пароль. Пользователь пытается его угадать. Если пароль введен правильно, то на экране «призовая» картинка, в противном случае – картинка–«разочарование». Слайд-шоу - просмотр «коллекции» картинок «по кругу». Алгоритм решения задачи: 1. Создать свою папку. 2. Скопировать в эту папку 10 картинок (желательно,.jpg). 3. Переименовать все файлы однообразно, например, рис1.jpg, рис2.jpg, рис3.jpg и т.д. 4. Написать код программы в Delphi. Основные этапы решения задачи: 1.2. Разместить на форме разрабатываемого приложения компоненты image1 -картинка button1 -кнопка «Назад», переход к следующей картинке button2 -кнопка, «Вперёд», переход к предыдущей картинке button3 -кнопка «Выход» 2. Установить начальные значения свойств компонетов. В компоненте Image1 по свойству Picture обязательно установить начальное значение (разместить любую картинку) - иначе программа при выполнении программы возникнет ошибка. Заметим, что при размещении картинки по свойству Picture в компоненте Image, её образ автоматически сохраняется в проекте, т. е. при создании исполняемого файла вся картинка целиком «входит» в проект, что приводит к резкому увеличению размера программы. Причем, если картинка хранится в папке с проектом, достаточно указать имя её файла, в противном случае необходимо прописывать полный путь к файлу. 3.1. Двойной щелчок по компоненту Button3 возвращает нас к процедуре обработки события «При щелчке по кнопке Выход» procedure TForm1.Button3Click. begin Close; end; 3.2. Переменная i выполняет роль «счётчика» картинок.. Её значение до первого нажатия должно быть равно 1. Двойной щелчок по пустому месту формы возвращает к обработке события при создании формы: procedure TForm1.FormCreate(Sender: TObject); begin i:=1; Image1.Picture.LoadFromFile('рис'+IntToStr(i)+'.jpg'); end; Переменную i надо описать. Если мы сделаем это в процедуре OnForm1Create, то не сможем использовать её в других процедурах, например, процедуре нажатия кнопки. Чтобы переменная была доступна к использованию в любой процедуре формы, описать ее надо в разделе Private в коде формы: Private i: integer; 3.3. Двойной щелчок по кнопке «Вперёд» возвращает к обработке события при щелчке по кнопке Button2: procedure TForm1.Button2Click(Sender: TObject); begin I:=i+1; if i=11 then i:=1; Image1.Picture.LoadFromFile('рис'+IntToStr(i)+'.jpg'); end; 3.4. Двойной щелчок по кнопке «Назад» возвращает к обработке события при щелчке по кнопке Button1: procedure TForm1.Button1Click(Sender: TObject); begin I:=i-1; if i=0 then i:=10; Image1.Picture.LoadFromFile('рис'+IntToStr(i)+'.jpg'); end;
|