Главная » Уроки по ООП » Урок 22. Создание приложений с невизуальными компонентами и меню

Урок 22. Создание приложений с невизуальными компонентами и меню

Уровень 1.

Задача 1. Установите на форму компонент PopupMenu (находится на странице Standart). Присвойте свойству формы PopupMenu значение PopupMenu1. Дважды щелкните по компоненту PopupMenu1 и в открывшемся конструкторе меню создайте следующие пункты (рис.1).


Создайте обработчики для кнопок:
«Свернуть форму»: Form1.WindowState:=wsMinimized;
«Восстановить форму»: Form1.WindowState:=wsNormal;
Для кнопки «Закрыть» обработчик напишите самостоятельно.

Уровень 2.

Задание 2. Создайте форму как на рисунке.

Рисунок 2.
Структура главного меню:

  1. Меню Файл (открытие файла и сохранение текста из компонента RichEdit1 в файл)

  1. Меню Вид:


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

  1. Меню Свернуть:

Команды этого меню должны скрывать выпадающее меню Файл и Вид соответственно и показывать галочку для выбранного элемента. Скрывать пункт меню можно с помощью свойства Visible.

 

Уровень 3.

Задание 3. На форме установите Image, OpenPictureDialog. Создайте меню:

  1. File: Open, (разделитель), Exit, (разделитель) - невидимый, Most Recent-невидимый
  2. Options: Center, Stretch, Transparent
  3. 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. Создайте форму, как на рисунке. Структура меню:

  1. Text: Load, Save, (разделитель), Enabled – с галочкой
  2. 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 для выравнивания по левому краю, по центру и по правому краю.

 

Составитель: Салий Н.А.

Яндекс.Метрика
Сайт создан в системе uCoz