Программа SHAPEDEM проста в написании и в освоении. Однако при изменении пользователем размера окна она будет выглядеть “некрасиво”. Давайте изменим ее таким образом, чтобы программа сама обрабатывала изменение размера окна, а заодно изучим компонент меню. Для достижения этих целей сделаем следующее:
· Кнопки и выпадающий список уберем с экрана и вместо них поместим на форму компонент меню (MainMenu)
· “Заставим” полосы прокрутки изменять свое положение в зависимости от размера окна
· “Заставим” свойство Position полос прокрутки изменяться, чтобы правильно отражать размер формы.
Взглянув на рис. 8, Вы сможете увидеть, как будет выглядеть программа после этих изменений.
Рис. 8: Программа SHAPDEM2 имеет возможность реагировать
на изменение пользователем размера окна
Листинг B: Программа SHAPDEM2 включает метод FormOnResize. Представлен главный модуль.
unit Main;
Interface
Uses
WinTypes, WinProcs, Classes, Graphics, Forms, Controls, ColorDlg, StdCtrls, Menus, Dialogs, ExtCtrls;
Type
TForm1 = class (TForm)
Shape1: TShape;
ColorDialog1: TColorDialog;
ScrollBar1: TScrollBar;
|
|
ScrollBar2: TScrollBar;
MainMenu1: TMainMenu;
Shapes1: TMenuItem;
ShapeColor1: TMenuItem;
FormColor1: TMenuItem;
Shapes2: TMenuItem;
Rectangle1: TMenuItem;
Square1: TMenuItem;
RoundRect1: TMenuItem;
RoundSquare1: TMenuItem;
Ellipes1: TMenuItem;
Circle1: TMenuItem;
Exit1: TMenuItem;
procedure NewShapeClick(Sender: TObject);
procedure ShapeColorClick(Sender: TObject);
procedure FormColorClick(Sender: TObject);
procedure ScrollBar2Change(Sender: TObject);
procedure ScrollBar1Change(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure Exit1Click(Sender: TObject);