Главная » Уроки по ООП » Урок 22. Создание приложений с невизуальными компонентами и меню |
ПРАКТИЧЕСКАЯ РАБОТА |
Урок 22. Создание приложений с невизуальными компонентами и меню
Уровень 1.
Задача 1. Установите на форму компонент PopupMenu (находится на странице Standart). Присвойте свойству формы PopupMenu значение PopupMenu1. Дважды щелкните по компоненту PopupMenu1 и в открывшемся конструкторе меню создайте следующие пункты (рис.1).
Создайте обработчики для кнопок:
«Свернуть форму»: Form1.WindowState:=wsMinimized;
«Восстановить форму»: Form1.WindowState:=wsNormal;
Для кнопки «Закрыть» обработчик напишите самостоятельно.
Уровень 2.
Задание 2. Создайте форму как на рисунке.
Рисунок 2.
Структура главного меню:
- Меню Файл (открытие файла и сохранение текста из компонента RichEdit1 в файл)
- Меню Вид:
Компоненты внутри панелей в действительности не используются. Кнопки меню скрывают или отображают каждую из двух панелей вместе с управляющими элементами, которые в них содержатся. Когда вы выбираете одну из этих команд меню, то происходят два разных действия:
Во-первых, отображается или скрывается панель.
Во-вторых, рядом с соответствующим элементом меню появляется или исчезает галочка.
Ниже приведен код одного из двух методов, который связан с событиями щелчка как команды меню, так и кнопки :
- Меню Свернуть:
Команды этого меню должны скрывать выпадающее меню Файл и Вид соответственно и показывать галочку для выбранного элемента. Скрывать пункт меню можно с помощью свойства Visible.
Уровень 3.
Задание 3. На форме установите Image, OpenPictureDialog. Создайте меню:
- File: Open, (разделитель), Exit, (разделитель) - невидимый, Most Recent-невидимый
- Options: Center, Stretch, Transparent
- About
Рисунок 3.
Var current:string;
procedure TForm1.Open1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
begin
if Current<>'' then
begin
MostRecent1.Caption:=Current;
N2.Visible:=true;
MostRecent1.Visible:=true;
end;
Current:=OpenPictureDialog1.FileName;
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
end;
procedure TForm1.MostRecent1Click(Sender: TObject);
var S : string;
begin
S:= MostRecent1.Caption;
Image1.Picture.LoadFromFile(S);
MostRecent1.Caption:=Current;
Current:=S;
end;
procedure TForm1.Center1Click(Sender: TObject);
begin
Center1.Checked := not Center1.Checked;
Image1.Center := Center1.Checked;
end;
Остальные методы дописать самостоятельно.
Дополнительное задание. Измените меню File и соответствующие методы для отображения имён и повторного открытия не одной, а трёх последних картинок.
Задание 4. Создайте форму, как на рисунке. Структура меню:
- Text: Load, Save, (разделитель), Enabled – с галочкой
- Graphics: Load, (разделитель), Center – отключен, Stretch – отключен
Создайте всплывающее меню с единственным пунктом Clear.
Рисунок 5.
procedure TForm1.PopupMenu1Popup(Sender: TObject);
begin
Clear1.Visible:= Memo1.Lines.Count<>0;
end;
procedure TForm1.Clear1Click(Sender: TObject);
begin
Memo1.Lines.Clear;
end;
procedure TForm1.Load2Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
begin
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
Center1.Enabled:=true;
Stretch1.Enabled:=true;
end;
end;
Добавьте в главное меню пункт Lines: Add, (разделитель) – невидимый.
Добавьте методы:
procedure TForm1.Add1Click(Sender: TObject);
var I : TMenuItem;
begin
I:=TMenuItem.Create(Lines1);
I.Caption:= Memo1.SelText;
I.OnClick:=Put;
Lines1.Add(I);
N3.Visible:=true;
end;
procedure TForm1.Put(Sender: TObject);
begin
Memo1.Text:=Memo1.Text + (Sender as TMenuItem).Caption;
end;
Дополнительное задание. Остальные обработчики событий напишите самостоятельно. Добавьте в меню Text пункт "Alignment: Left", циклически изменяющий свойство Memo1.Alignment и своё свойство Caption для выравнивания по левому краю, по центру и по правому краю.
Составитель: Салий Н.А.