Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы ПП all-in-one.docx
Скачиваний:
10
Добавлен:
14.11.2019
Размер:
2.64 Mб
Скачать

Управление видимостью панели инструментов

Придайте своему приложению завершенность и доработайте обработчики ко­манд меню View | Toolbar и View | Status bar.

Шаг 61. Обработка команд View | Toolbar и View | StatuSbar выполняется так — у соответствующей панели измените значение булева свой­ства Visible на противоположное. При этом панель исчезает или появляется в окне вместе с изменением значения свойства. Оконча­тельный вариант обработчиков будет следующим (жирным щрифтом выдлены операторы, котоорые необходимо добавить):

//--------------------------------------------

void __fastcall TPictureForm::ToolbarItemClick (TObject *Sender)

{

ToolBar->Visible = !ToolBar->Visible;

ToolbarItem->Checked = !ToolbarItem->Checked;

// Спрятать или показать панель инструментов

}

// -------------------------------------------void__fastcall TPictureForm::StatusBarltemClick (TObject *Sender)

{

StatusBar->Visible=!StatusBar->Visible;

StatusBarItem->Checked=!StatusBarItem-> Checked;

// Спрятать или показать строку состояния

}

Скомпилируйте приложение и посмотрите, как исчезают и появляются панель инструментов и строка состояния при выборе в меню View соответствующих команд. Например, выключена панель инструментов:

Шаг 62. На этом приложение для просмотра графических файлов разработано. Теперь можете самостоятельно изменять некоторые его части. Например,

  1. уберите компоненты и операторы необходимые для работы с нормальным размером картинки;

  1. добейтесь того, чтобы размер картинки увеличивался (уменьшался) каждый раз при нажатии кнопки для увеличения (уменьшения) изображения;

  1. подберите более плавные коэффициенты увеличения (уменьшения) картинки;

  1. установите начальную директорию для открытия и сохранения файла;

  1. обеспечьте появление картинки во всей рабочей области компоненты ScrolBox;

  1. обеспечьте появление линеек прокрутки сразу же с появлением картинки;

  1. установите свойства Flat для быстрых кнопок в значение true, для того чтобы кнопки появлялись только при наведении указателя мыши на поле кнопки.

Такие изменения сделаны в проекте в директории pr_3, находящейся в директории описания лабораторной работы:

Шаг 63. Попробуйте самостоятельно поработать с компонентой ToolBar (панель инструментов), которая специально включена в палитру компонент С++Builder 3 и находится на вкладке Win32:

Примечание: данная работа может быть выполнена с добавлением дополнительных функций и свойств, присущих подобным программам

Методические материалы по теме «Текстовый редактор»

Условие задачи:

Используя компоненту TMemo, ввести текст, создать простейший текстовый редактор с пунктами меню TEXT,состоящий из пунктов: CUT-удаляет помеченный текст; CUT ALL- удаляет весь текст; COPY-копирует помеченный текст в буфер; PASTE-производит вставку из буфера.

Создание проекта.

Шаг 1.

*Запустите C++ Builder 5 и создайте новое приложение: в меню File выберите пункт New Аpplication (новое приложение). Появившаяся форма Form1 является главной формой приложения.

* В ИНСПЕКТОРЕ ОБЪЕКТОВ установите свойство Caption этой формы: “TEXT”.

* Свойству Color установите значение clAqua.

Шаг 2.

Поместите на форму компонент TMemo (многострочный редактор текста) . Для этого:

на вкладке Standard ПАЛИТРЫ КОМПОНЕНТ выберите компонент TMemo (на вкладке Standard 6-ый слева)

* Установите свойству ScrollBars значение ssBoth –видимость обеих полос прокрутки.

Шаг 3.

Поместите на форму компонент TLabel (метка ). Для этого:

* на вкладке Standard ПАЛИТРЫ КОМПОНЕНТ выберите компонент ТLabel (3-й слева);

* свойство Caption этого компонента установите "INPUT TEXT".

Шаг 4.

Поместите на форму компонент Tbutton (кнопка). Для этого:

* на вкладке Standard ПАЛИТРЫ КОМПОНЕНТ выберите компонент Tbutton(6-й слева);

* свойство Caption этого компонента установите “EXIT”

Шаг 5.

Поместите на форму компонент TMainMenu (главное меню). Для этого:

  • на вкладке Standard ПАЛИТРЫ КОМПОНЕНТ выберите компонент TMainMenu (2-й слева);

*нажмите на нём кнопкой мыши появится окно дизайнера меню, создайте соответствующие пункты меню:

* закройте окно дизайнера меню.

Окончательно Form1 будет иметь вид:

Шаг 6.

*Создадим Form2 для подсказки что делают соответствующие пункты меню,для этого поместите на форму 5 компонент Tlabel,свйству Caption этих компонент присвойте пояснения что делает соответствующие пункты меню.

* В ИНСПЕКТОРЕ ОБЪЕКТОВ установите свойство Caption этой формы: “HELP”.

* Свойству Color установите значение clWhite.

Окончательно Form2 будет иметь вид:

Теперь можно написать обработчики событий в соответствие со сценарием.

Шаг 7.

*Подключим для начала Form2 к Form1для этого в файле Text1.cpp добавьте строку #include "Text2.h":

Шаг 8.

*Щёлкните мышью на пункте меню PASTE (появится окно РЕДАКТОРА КОДА с заголовком функции отклика на нажатие этого пункта меню).Добавьте в тело функции строку:

Memo1->PasteFromClipboard(); //вставка текста из буфера.

Шаг 9.

* Щёлкните мышью на пункте меню СOPY. Добавьте в тело функции строку:

Memo1->SelText; //указатель на выделенный текст Memo1->CopyToClipboard(); //копирование выделенного текста в буфер

Шаг 10.

*Обработаем событие OnEnter,заключающееся в получении компонентой фокуса ввода.В тело появившейся функции добавьте строку:

Memo1->Text=""; //удаляет текст из компоненты

Шаг 11.

*Щёлкните мышью на пункте меню CUT. Добавьте в тело функции строку:

Memo1->SelText=""; //удаление выделенного текста

Шаг 12.

* Щёлкните мышью на пункте меню CUT ALL. Добавьте в тело функции строку:

Memo1->Text=""; //удаление всего текста

Шаг 13.

* Обработаем событие OnDestroy, соответствующее закрытию главной формы, а, следовательно, и закрытию приложения. Добавьте в тело функции строку:

Application->Terminate(); //закрытие приложения

Шаг 14.

* Щёлкните мышью на пункте меню HELP. Добавьте в тело функции строку:

Form2->ShowModal(); //показ Form2 в модальном режиме

Шаг 15.

* Щёлкните мышью на кнопке EXIT. Добавьте в тело функции строку:

Application->Terminate();//закрытие приложения

Шаг16.

*. Сохраните проект, выбрав пункт File / Save Project As.

Шаг 17. Запустите проект на выполнение.Вот что получилось:

Файл Text1.cpp имеет вид:

//-------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Text2.h"

#include "Text1.h"

//-------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//-------------------------------------------

__fastcall TForm1::TForm1 (TComponent* Owner) : TForm(Owner)

{

}

//-------------------------------------------

void __fastcall TForm1::PASTE1Click (TObject *Sender)

{ Memo1->PasteFromClipboard();

}

//-------------------------------------------

void __fastcall TForm1::COPY1Click (TObject *Sender)

{ Memo1->SelText;

Memo1->CopyToClipboard();

}

//-------------------------------------------

void __fastcall TForm1::Memo1Enter (TObject *Sender)

{Memo1->Text="";

}

//-------------------------------------------

void __fastcall TForm1::CUT2Click (TObject *Sender)

{ Memo1->SelText="";

}

//-------------------------------------------

void __fastcall TForm1::CUTALL1Click (TObject *Sender)

{ Memo1->Text="";

}

//-------------------------------------------

void __fastcall TForm1::FormDestroy (TObject *Sender)

{ Application->Terminate();

}

//-------------------------------------------

void __fastcall TForm1::HELP1Click(TObject *Sender)

{ Form2->ShowModal();

}

//-------------------------------------------

void __fastcall TForm1::Button1Click (TObject *Sender)

{ Application->Terminate();

}

//--------------------------

Файл Text1.h имеет вид:

//-------------------------------------------

class TForm1 : public TForm

{

__published: // IDE-managed Components

TMemo *Memo1;

TMainMenu *MainMenu1;

TMenuItem *CUT1;

TMenuItem *CUT2;

TMenuItem *COPY1;

TMenuItem *PASTE1;

TMenuItem *CUTALL1;

TLabel *Label1;

TMenuItem *HELP1;

TButton *Button1;

void __fastcall PASTE1Click(TObject *Sender);

void __fastcall COPY1Click(TObject *Sender);

void __fastcall Memo1Enter(TObject *Sender);

void __fastcall CUT2Click(TObject *Sender);

void __fastcall CUTALL1Click(TObject *Sender);

void __fastcall FormDestroy(TObject *Sender);

void __fastcall HELP1Click(TObject *Sender);

void __fastcall Button1Click(TObject *Sender);

private : //User declarations

public : // User declarations

__fastcall Tform1 (Tcomponent *Owner);

};

//------------------------------------------------------

extern PACAGE TForm1 *Form1;

/------------------------------------------------------

#endif

Примечание: данная работа может быть выполнена с добавлением дополнительных функций и свойств, присущих текстовым редакторам.