Мы видим, что панели инструментов занимают слишком большую часть формы, поэтому для удобства работы с приложением необходимо создать возможность скрывать и вновь показывать эти панели.
- Двойным щелчком мыши откройте ActionList1.
- С помощью кнопки NewAction добавьте 4 новых действия и задайте для них следующие свойства:
Name | Caption | Category | Checked | Hint |
ViewInstrum | &Набор инструментов | View | True | Набор инструментов|Вывод и скрытие набора инструментов |
ViewAtrib | Панель &атрибутов | View | True | Панель атрибутов|Вывод и скрытие панели атрибутов |
ViewFontAtrib | Свойства &шрифта | View | False | Панель атрибутов текста|Вывод и скрытие панели атрибутов текста |
ViewPalette | &Палитра | View | True | Палитра|Вывод и скрытие цветовой палитры |
Т.е. мы хотим, чтобы изначально были видны набор инструментов, панель атрибутов и палитра. А панель со свойствами шрифта должна отображаться только в том случае, если это необходимо. Поэтому для панели ToolBar4 измените свойство Visible на False.
- Для команды ViewInstrum создайте процедуру
procedure TMainForm.ViewInstrumExecute(Sender: TObject);
begin
ViewInstrum.Checked:=not(ViewInstrum.Checked);
ToolBar1.Visible:=ViewInstrum.Checked
end;
- Для команды ViewAtrib
procedure TMainForm.ViewAtribExecute(Sender: TObject);
begin
ViewAtrib.Checked:=not(ViewAtrib.Checked);
ToolBar3.Visible:=ViewAtrib.Checked
end;
- Для команды ViewFontAtrib
procedure TMainForm.ViewFontAtribExecute(Sender: TObject);
begin
ViewFontAtrib.Checked:=not(ViewFontAtrib.Checked);
ToolBar4.Visible:=ViewFontAtrib.Checked
end;
- Для команды ViewPalette
procedure TMainForm.ViewPaletteExecute(Sender: TObject);
begin
ViewPalette.Checked:=not(ViewPalette.Checked);
ToolBar2.Visible:=ViewPalette.Checked
end;
- Откройте конструктор MainMenu1.
- Между разделами меню Файл и Справка вставьте новый раздел Вид. В этом меню будет четыре пункта, соответствующие только что созданным действиям.
- Выделите первый пункт в разделе Вид. Установите свойство Action равным ViewInstrum. После выполнения этого действия данному пункту меню автоматически присваиваются все свойства, заданные для выбранного действия.
- Аналогично создайте остальные три пункта меню и закройте конструктор меню.
Рис. 6. Окончательный вид формы MainForm.
- На панели инструментов ToolBar1 создайте разделитель и три кнопки. Выделите первую из них и в свойстве Action выберите ViewAtrib. Эта кнопка предназначена для отображения Панели атрибутов. В ее свойстве ImageIndex выберите изображение кисти (см. рис. 6).
- Вторая кнопка будет отвечать за палитру. Для нее выберите действие (Action) ViewPalette и изображение ведерка.
- Третья кнопка показывает свойства шрифта. Ей задайте действие ViewFontAtrib и изображение с буквами «А».
- Запустите приложение и убедитесь, что пункты меню Вид и кнопки панели инструментов работают согласованно.
Работа меню «Файл»
- Сначала опишите в разделе var всего модуля переменную CurrentFileNume типа String, которая будет содержать имя текущего документа. Над разделом var добавьте раздел const, в котором опишите константу Untitled ='Безымянный'.
- Теперь создайте собственную процедуру SetFileName, устанавливающую имя текущего документа и записывающую его в заголовке приложения.
procedure SetFileName(Name: String);
begin
CurrentFileName:=Name;
MainForm.Caption:=ExtractFileName(Name)+' - '+Application.Title
end;
- В обработчике события OnCreate формы MainForm установите исходное значение имени файла, т.е. добавьте код:
SetFileName(Untitled);
Создать
- Для действия FileNew1 создайте процедуру
procedure TMainForm.FileNew1Execute(Sender: TObject);
var BitMap: TBitMap;
begin
BitMap:=TBitMap.Create;
BitMap.Height:=Image1.Height;
BitMap.Width:=Image1.Width;
Image1.Picture.Assign(Bitmap);
Start;
SetFileName(Untitled);
end;
Эта процедура создает пустой битовый образ, соответствующий размеру нашего рисунка и помещает его на этот рисунок. При этом все свойства пера, кисти и шрифта стираются, поэтому нам надо изменить свойства всех компонентов, отражающих эти свойства. Для этого вызывается процедура Start.
Открыть
- Для действия FileOpen1 измените созданную шаблоном процедуру на следующую:
procedure TMainForm.FileOpen1Execute(Sender: TObject);
begin
if OpenPictureDialog1.Execute then begin
CurrentFileName:=OpenPictureDialog1.FileName;
SetFileName(OpenPictureDialog1.FileName);
Image1.Picture.LoadFromFile(CurrentFileName);
Start;
end;
end;
Эта процедура помещает на Image1 рисунок, загруженный из выбранного файла.
- Для того чтобы Image1 изменял свои размеры в соответствии с помещаемым на него рисунком, измените его свойство AutoSize на True.