Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб 1 C++ Builder.doc
Скачиваний:
28
Добавлен:
27.03.2015
Размер:
5.04 Mб
Скачать

3.8.3. Создание обработчика событий для команды Save

Чтобы создать обработчик событий для команды 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 текущее имя файла, которое пользователь может переписать на другое.