Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Задание 2. Создать приложение — простой текстовый редактор, способный открывать существующий текстовый файл, создавать новый файл






Создать приложение — простой текстовый редактор, способный открывать существующий текстовый файл, создавать новый файл, сохранять файл.

1. Создайте новое приложение.

2. Переименуйте форму в MyNotepad.

3. Сделайте так, чтобы строка заголовка формы содержала надпись MyNotepad v1.0.

4. Сохраните приложение в личном каталоге под именем MyNotepad. Имя файла формы программы задайте Notepad.cpp. В процессе работы над приложением периодически сохраняйте результаты при помощи команды File/Save All.

5. В последующем (при создании приложений) может потребоваться разделитель (—), линия, отделяющая одни элементы приложения от других. Создадим, для примера, горизонтальный разделитель. Поместите в форму компонент Bevel, задайте его высоту равной 2 и сделайте так, чтобы он располагался по верхней границе формы на всю ее ширину.

6. В приложения кнопки обычно находятся на панелях. Поэтому создадим панель с требуемыми нам кнопками " New ", " Open ", " Save ". Поместите в форму компонент Panel из палитры компонентов. Переименуйте ее в ToolBar.

7. Сделайте высоту панели равной 32. Свойство BevelOuter установите в bvNone. Обратите внимание на изменения, происшедшие с панелью.

8. Сотрите значение свойства Caption.

9. Измените свойство Align на alTop. Обратите внимание на взаимное расположение панели и разделителя.

10. В качестве кнопок используем компонент SpeedButton, специально предназначенный для установки в панель. Поместите компонент SpeedButton в панель (не в форму!). Не беспокойтесь о точном положении кнопки, выравнивание осуществим позднее.

11. Переименуйте кнопку в FileOpenBtn.

12. Установите свойство Left кнопки равным 5.

13. С помощью палитры выравнивания отцентрируйте кнопку в панели по вертикали.

14. На кнопку, реализованную через компонент SpeedButton (или через BitBtn) может быть помещен графический объект — значок, характеризующий функцию кнопки. Дважды щелкните в колонке Value напротив свойства Glyph компонента SpeedButton. Откроется окно редактора изображений. При помощи соответствующих кнопок перейдите вкаталог …\Builder\Borland Shares\Images\Buttons и выберите файл Fileopen.bmp ( указать точный путь невозможно, так как он различен для разных версий Borland С++ Builder ). Если все действия были выполнены правильно, на кнопке появится графическое изображение.

15. Аналогичным образом добавьте в панель кнопки FileSaveBtn и FileNewBtn. Разместите их " без зазора" по горизонтали.

16. На все кнопки создайте короткие всплывающие подсказки, аналогичные тем которые используются в Windows.

17. Добавьте в форму компонент Memo. Данный компонент предназначен для отображения текстовой информации, а также для ее набора. Информация определяется свойством Lines компонента.

18. Добейтесь того, чтобы компонент Memo занимал все оставшееся поле формы.

19. Дважды щелкните в колонке Value инспектора объектов напротив свойства Lines. В открывшемся окне удалите надпись Memo1.

20. Разрешите использование в компоненте Memo линеек прокрутки (ScrollBar).

21. Добавьте в форму, место не имеет значения, компоненты OpenDialog и SaveDialog. У данных компонентов настройте фильтр на работу с текстовыми (*.txt) и всеми файлами (*.*).

22. Форма должна иметь вид такой же как показано на рисунке.

23. Ниже приведен листинг программы, реализующей создание нового файла, считывание и сохранение файла. Найдите функции — обработчики события щелчка по соответствующей кнопке панели Вашего приложения. Реализуйте эти функции у себя. TMyNotepad *MyNotepad;

//

__fastcall TMyNotepad:: TMyNotepad(TComponent*Owner)

: TForm(Owner) { }

//

void __fastcall TmyNotepad:: FileOpenBtnClick(TObject*Sender) {

if (OpenDialog1 − > Execute()) {

if (Memo1 − > Modified) {

int res=Application − > MessageBox(" The current file has changed. Save changes? ", " MyNotepad Message", MB_YESNOCANCEL | MB_ICONWARNING);

if (res == IDYES) FileSaveBtnClick(Sender);

if (res == IDCANCEL) return; }

Memo1 − > Lines − > LoadFromFile(OpenDialog1 − > FileName); } }

void __fastcall TMyNotepad:: FileNewBtnClick(TObject*Sender) {

if (Memo1 − > Modified) {

int res=Application − > MessageBox(" The current file has changed. Save changes? ", " MyNotepad Message", MB_YESNOCANCEL | MB_ICONWARNING);

if (res == IDYES) FileSaveBtnClick(Sender);

if (res == IDCANCEL) return; }

if (Memo1 − > Lines − > Count > 0)

Memo1 − > Clear();

SaveDialog1 − > FileName = " "; }

// _____________________________________________________________________

void __fastcall TmyNotepad:: FileSaveBtnClick(TObject *Sender)

{

if (SaveDialog1 − > FileName! = " ")

{

Memo1 − > Lines − > SaveToFile(SaveDialog1 − > FileName); Memo1 − > Modified = false;

}

Else

{

SaveDialog1 − > Title=" Save As";

if (SaveDialog1 − > Execute())

{

Memo1 − > Lines − > SaveToFile(SaveDialog1 − > FileName);

Memo1 − > Modified=false;

}

}

}






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.