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

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

Чтобы создать обработчик событий для команды New:

1) выберите пункты меню View Units [вид  модули]. Откроется окно View Unit [обзор модулей]. Выберите в нем пункт меню Unit1 и щелкните кнопку OK. Откроется окно редактора кода на вкладке Unit1.cpp, которая показывает код, содержащийся в файле Unit1.cpp (файл модуля);

2) объявите открытую переменную FileName [имя файла], которая будет использоваться в обработчике событий. Для этого откройте в редакторе кода вкладку Unit1.h, щелкнув ярлычок Unit1.h в нижней части окна (или щелкнув правой кнопкой вкладку Unit1.cpp и выбрав в контекстном меню пункт Open Source/Header File). Эта вкладка показывает код, содержащийся в файле Unit1.h (файл заголовка модуля);

3) добавьте в раздел объявления открытых членов класса TForm1 (раздел public) строку:

AnsiString FileName;

Теперь ваш экран должен иметь следующий вид:

4) откройте главную форму, нажав клавишу F12. Эта клавиша попеременно включает главную форму и связанный с ней код;

5) дважды щелкните объект ActionList. Откроется окно редактора списка действий;

6) в нем выберите категорию File и дважды щелкните действие FileNew. Откроется окно редактора кода с курсором в обработчике событий.

Сначала дважды щелкните объект ActionList, чтобы открыть

окно редактора списка действий

7. В окне редактора кода справа от курсора введите строки:

RichEdit1->Clear();

FileName = ”Untitled.txt”;

StatusBar1->Panels->Items[0]->Text = FileName;

Теперь ваш обработчик событий должен выглядеть так:

Вы можете изменить размеры кодовой части окна, чтобы уменьшить горизонтальную прокрутку.

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

Когда вы в приложении выполняете команду File Open [файл  открыть], должно открываться диалоговое окно File Open [открытие файла]. Чтобы связать такое окно с данной командой, найдите на палитре компонентов соответствующий компонент и добавьте его в главную форму приложения. После этого вы можете написать обработчик событий для команды. Поступите следующим образом.

  1. Выберите пункты меню View Forms [вид  формы]. Откроется окно View Form [обзор форм]. Выберите в нем пункт меню Form1 и щелкните кнопку OK. Откроется главная форма приложения.

  1. Прокручивая вкладки палитры компонентов, найдите вкладку Dialogs [диалоги], а на ней – компонент OpenDialog. Добавьте его в главную форму приложения. Он не является визуальным, поэтому неважно, где он будет на форме. C++Builder по умолчанию дает этому объекту имя OpenDialog1.

Теперь вы можете вызывать для этого объекта метод Execute, который будет вызывать из Windows стандартный диалог открытия файлов.

  1. Задайте свойства объекта OpenDialog1. Для этого в инспекторе объектов:

  • в поле DefaultExt введите значение txt;

 в поле Filter [фильтр] дважды щелкните область значения. Откроется окно Filter Editor [редактор фильтров] с таблицей, содержащей два столбца – Filter Name [имя фильтра] и Filter [фильтр]. В первую строку таблицы впишите значения Text files и *.txt, а во вторую – значения All files и *.* соответственно. Щелкните кноп- ку OK.

  • в поле Title [название] введите значение Open File.

  1. На форме дважды щелкните объект ActionList. Откроется окно редактора списка действий.

  1. В нем выберите категорию File и дважды щелкните действие FileOpen. Откроется окно редактора кода с курсором в обработчике событий.

  2. В этом окне справа от курсора введите строки:

if (OpenDialog1->Execute())

{

RichEdit1->Lines->LoadFromFile(OpenDialog1

–>FileName);

FileName = OpenDialog1->FileName;

StatusBar1->Panels->Items[0]->Text =

FileName;

}

Теперь ваш обработчик событий должен выглядеть так:

Эта строка помещает текущее имя файла на панель строки состояния.

Эта строка запоминает принятое имя файла как текущее имя файла.

Эта строка загружает текст из файла с принятым именем.

Эта строка выполняет диалог Open и принимает имя файла.