Чтобы создать обработчик событий для команды Save:
1) откройте главную форму, нажав клавишу F12. Дважды щелкните объект ActionList. Откроется окно редактора списка действий;
2) выберите в нем категорию File и дважды щелкните действие FileSave. Откроется окно редактора кода с курсором в обработчике событий;
3) в этом окне справа от курсора введите строки:
if (FileName == ”Untitled.txt”)
FileSaveAsExecute(NULL);
else
RichEdit1->Lines->SaveToFile(FileName);
Если файлу еще не дано имя, то этот код выполняет диалог Save As [сохранить как], в котором принимает имя, вводимое пользователем, и сохраняет файл под этим именем. В противном случае этот код сохраняет файл под текущим именем. Обработчик событий для команды Save As описан ниже.
Теперь ваш обработчик событий должен выглядеть так:
3.8.4. Создание обработчика событий для команды Save As
Чтобы создать обработчик событий для команды Save As:
1) откройте главную форму, нажав клавишу F12. Дважды щелкните объект ActionList. Откроется окно редактора списка действий;
2) прокручивая вкладки палитры компонентов, найдите вкладку Dialogs [диалоги], а на ней – компонент SaveDialog. Добавьте его в главную форму приложения. Он не является визуальным, поэтому неважно, где он будет на на форме. C++Builder по умолчанию дает этому объекту имя SaveDialog1. Теперь вы можете вызывать для этого объекта метод Execute, который будет вызывать из Windows стандартный диалог сохранения файлов;
3) задайте свойства объекта SaveDialog1. Для этого в инспекторе объектов:
· в поле DefaultExt введите значение txt;
· в поле Filter [фильтр] дважды щелкните область значения. Откроется окно Filter Editor [редактор фильтров] с таблицей, содержащей два столбца – Filter Name [имя фильтра]и Filter [фильтр]. В первую строку таблицы впишите значения Text files и *.txt, а во вторую – значения All files и *.* соответственно. Щелкните кнопку OK;
· в поле Title [название] введите значение Save As.
4) на форме дважды щелкните объект ActionList. Откроется окно редактора списка действий;
5) в нем выберите категорию File и дважды щелкните действие FileSaveAs. Откроется окно редактора кода с курсором в обработчике событий;
6) в этом окне справа от курсора введите строки:
SaveDialog1->FileName = FileName;
SaveDialog1->InitialDir =
ExtractFilePath(FileName);
if (SaveDialog1->Execute())
{
RichEdit1->Lines->SaveToFile(SaveDialog1->
FileName);
FileName = SaveDialog1->FileName;
StatusBar1->Panels->Items[0]->Text =
FileName;
}
Теперь ваш обработчик событий должен выглядеть так:
Эта строка помещает текущее имя файла на панель строки состояния.
Эта строка запоминает принятое имя файла как текущее имя файла.
Эта строка сохраняет текст в файле с принятым именем.
Эта строка выполняет диалог Save As и принимает имя файла.
Эта строка устанавливает в качестве папки по умолчанию папку, к которой обращались в прошлый раз.
Эта строка передает в диалог Save As текущее имя файла, которое пользователь может переписать на другое.
3.8.5. Создание обработчика событий для команды Exit
Чтобы создать обработчик событий для команды Exit:
1) откройте главную форму, нажав клавишу F12. Дважды щелкните объект ActionList. Откроется окно редактора списка действий;
2) в нем выберите категорию File и дважды щелкните действие FileExit. Откроется окно редактора кода с курсором в обработчике событий;
3) в этом окне справа от курсора введите строку:
Close(); // это метод закрытия главной формы;
4) сохраните проект, выбрав пункты меню File ® Save All;
5) скомпилируйте и выполните проект, нажав клавишу F9 или зеленую кнопку Run (u) на панели инструментов отладки.
Если при запуске приложения появится сообщение об ошибке, то щелкните его, чтобы определить местоположение ошибки. Убедитесь, что вы точно выполнили все пункты учебного примера.
Заметьте, все простые кнопки и почти все кнопки панели инструментов сейчас работают. Но проект все еще не закончен;
6) закройте окно приложения, чтобы вернуться в режим проектирования.