### 3.4. Написание програмного кода для главного меню.

А теперь для главного меню надо написать код. Рассмотрим для пункта «новый», для этого в главном меню в проектировщике форм выберем главный пункт «файл», и в открывшемся меню выберем пункт новый, мы введём туда следующий код:

Form2:=TForm2.Create (self);

// создание экземпляра дочерней формы

Form2.Caption:='документ'+IntToSTr (MDIChildCount);

//установление заголовка для дочерней формы

Form2.Name:='';

// очищение имени формы.

Затем надо с панели Dialogs разместить компонент TOpenDialog, и настроить его свойства. Сначала надо настроить свойство Filter, для этого щёлкнем на многоточии после этого свойства, и появится окно,в котором вводятся фильтры, а вводятся они туда так: в первом столбце вводится имя фильтра, которое отображается в диалоге, а во втором столбце вводится сам фильтр, сначала в фильтре указывается звёздочка и точка *., а дальше вводится расширение файлов, которые будут отображаться в диалоговом окне. Список фильтров приведён в следующей таблице.

Имя фильтра | Фильтр
--- | ---
Текстовые файлы | *.txt
Файлы в формате RTF | *.rtf

Потом надо закрыть этот диалог и написать код для операции открытия файлов, для этого на форме, в главном меню надо выбрать пункт Файл – Открыть, и ввести следующий код:

If OpenDialog1.Execute then

// Условие на нажатии клавиши ok в диалоговом окне

Begin

Form4:=TForm4.Create (self);

// создание новой дочерней формы

Form4.RichEdit1.Lines.LoadFromFile (OpenDialog1.FileName);

// установление в имени новой формы, названия полного пути

//поиска открытого файла

Form4.Caption:=OpenDialog1.FileName;

End;

А теперь можно запустить программу, надо после запуска создать в программе новый (новое) файл (окно), и открыть любой файл, например, можно создать текстовой файл и ввести туда следующий текст:

"Это приложение создано в среде Delphi, в нём можно открывать файлы, и создавать новые файлы (окна)."

После этого надо открыть этот файл в программе.

Осталась нерешенным ещё один вопрос: как сохранять файлы. Для решения этой проблемы создан компонент TSaveDialog, он располагается на панели Dialogs. Этот компонент является наследником класса TOpenDialog. Мы его настроим также, как и диалог открытия файлов. А затем переключимся на форму, и в созданном нами главном меню выберем пункт Файл – сохранить, и введём туда следующий текст:

With (ActiveMDIChild as TForm4) do

// установление метода для активной дочерней формы.

Begin

If SaveDialog1.Execute then

// проверка, нажата ли кнопка ok в диалоге

Begin

If SaveDialog1.FileName<>'' then

// проверка, указан ли в строке с файлами хотя бы один символ

Form4.RichEdit1.Lines.SaveToFile (SaveDialog1.FileName);

//сохранение файла в файле указанном в строке ввода имени файла

Form4.RichEdit1.Modified:=False;

//установлению свойству «модификация» значения False

Exit;

// выход из операции.

end;

// установление ссылки на пункт меню «сохранить как»

N8.Click;

end;

end;

После этого надо создать код для операции сохранения под другим именем. Для этого нам не надо никаких компонентов, потому что, пункты меню «сохранить» и «сохранить, как», будут пользоваться компонентом SaveDialog1. Для создания операции сохранения под другим именем, нам надо переключиться на форму, и выбрать в главном меню на форме пункт Файл – сохранить как, и ввести следующий код:

With (ActiveMDIChild as TForm4) do

// обращение к активной дочерней форме

Begin

If SaveDialog1.Execute then

// условие на нажатие клавиши

Begin

Caption: =SaveDialog1.FileName;

//установление для активной дочерней формы заголовка из выбранного

//вами файла

Form4.RichEdit1.Lines.SaveToFile (SAveDialog1.FileName);

// сохранение текста из редактора ввода в файле, который указан в строке

//диалогового окна.

Form4.RichEdit1.Modified:=false;

// установление свойству «модифицирован» значения False

End;

Exit;

end;

А теперь можно запустить программу, сохранить этот файл под именем «эксперимент а», а затем выбрать команду «сохранить как» и сохранить под именем «эксперимент в»

Давайте, сделаем чтобы пункты из меню «окно» выполняли расположения окно различными способами: каскадом, мозаикой и т.д. Для того чтобы расположить окна по диагонали я вызвать метод

Cascade.

А для того чтобы расположить так, чтобы все окна отображались и не перекрывали друг друга или «мозаикой» требуется метод

Tile;

А теперь давайте внедрим эти методы в программу, сначала мы переключимся на форму, а затем в сформированном нами главном меню выберем пункт Окно – Каскад и введём туда код для расположения окон каскадом. Потом мы опять переключимся на форму, и на ней, в главном меню, выберем пункт Окно – Мозаикой. И введём туда код для расположения окон «мозаикой». А теперь надо в главном меню на форме выбрать пункт Окон – Упорядочить всё, и в редакторе кода ввести следующий текст:

Arrange icons;

// выравнивание свёрнутых окон дочерних форм по нижнему краю

После выполнения этих действий можно запустить программу. А затем надо три раза в главном меню выбрать пункт Окно – каскад.Потом мы в главном меню выберем пункт Окно – Мозаикой, a теперь свернём все окна, и пиктограммы окон разложим по всему рабочему полю приложения, а затем в главном меню выберем пункт Окно – Упорядочить всё

После этого надо создать действия по вызову справочной информации. Но сначала нам надо создать форму для краткой информации

<<Назад | Далее>>