Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Изучение принципа работы текстового редактора




Лабораторная работа 17

Цель работы – понять основы работы простейшего текстового редактора.

Теория

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

Различают два типа текстовых редакторов.

Первый тип ориентирован на работу с последовательностью символов в текстовых файлах. Такие редакторы обеспечивают расширенную функциональность – подсветку синтаксиса, сортировку строк, шаблоны, конвертацию кодировок, показ кодов символов и т. п. Иногда их называют редакторами кода, так как основное их предназначение – написание исходных кодов компьютерных программ.

Второй тип текстовых редакторов имеет расширенные функции форматирования текста, внедрения в него графики и формул, таблиц и объектов. Такие редакторы часто называют текстовыми процессорами и предназначены они для создания различного рода документов, от личных писем до официальных бумаг. Классический пример – Microsoft Word.

Задание

Приведенная ниже программа представляет собой текстовый редактор. Разберитесь в основных принципах ее работы. Опишите используемые функции, операторы, компоненты библиотеки VCL, обработчики событий. Объясните, для чего они нужны в данной программе.

#include <vcl.h>

#pragma hdrstop

#include "lab15_task1.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

AnsiString FileName;

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

FileName = "Безымянный";

Form1->Caption = "Текстовый редактор - " + FileName;

ComboBox1->Items->Assign(Screen->Fonts);

}

void __fastcall TForm1::N8Click(TObject *Sender)

{

Form1->Close();

}

void __fastcall TForm1::N6Click(TObject *Sender)

{

if (OpenDialog1->Execute())

{

RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);

FileName = OpenDialog1->FileName;

Form1->Caption = "Текстовый редактор - " +

OpenDialog1->FileName;

}

}

void __fastcall TForm1::N7Click(TObject *Sender)

{

if(RichEdit1->Modified)

{

if (SaveDialog1->Execute())

{

RichEdit1->Lines->SaveToFile(SaveDialog1->FileName);

RichEdit1->Modified = false;

}

}

}

void __fastcall TForm1::N5Click(TObject *Sender)

{

if(RichEdit1->Lines->Count > 0)

{

int answer;

answer = MessageBox(0,"Сохранить содержимое

окна?","Сохранить?",MB_YESNOCANCEL);

if(answer==IDYES)

{

N7Click(Sender);

RichEdit1->Clear();

}

else if(answer==IDNO)

{

RichEdit1->Clear();

}

}

}

void __fastcall TForm1::N9Click(TObject *Sender)

{

if(FileName == "Безымянный.txt")

{

N7Click(Sender);

}

else

{

RichEdit1->Lines->SaveToFile(FileName);

}

}

void __fastcall TForm1::N10Click(TObject *Sender)

{

PrinterSetupDialog1->Execute();

}

void __fastcall TForm1::N11Click(TObject *Sender)

{

if (PrintDialog1->Execute())

{

RichEdit1->Print(OpenDialog1->FileName);

}

}

void __fastcall TForm1::N12Click(TObject *Sender)

{

RichEdit1->CutToClipboard();

}

void __fastcall TForm1::N13Click(TObject *Sender)

{

RichEdit1->CopyToClipboard();

}

void __fastcall TForm1::N14Click(TObject *Sender)

{

RichEdit1->PasteFromClipboard();

}

void __fastcall TForm1::N16Click(TObject *Sender)

{

if(N16->Checked)

{

RichEdit1->WordWrap = false;

N16->Checked = false;

}

else

{

RichEdit1->WordWrap = true;

N16->Checked = true;

}

}

void __fastcall TForm1::N15Click(TObject *Sender)

{

if(FontDialog1->Execute())

{

RichEdit1->Font = FontDialog1->Font;

}

}

void __fastcall TForm1::N17Click(TObject *Sender)

{

RichEdit1->Clear();

}

void __fastcall TForm1::N19Click(TObject *Sender)

{

RichEdit1->Undo();

}

void __fastcall TForm1::N20Click(TObject *Sender)

{

N19Click(Sender);

}

void __fastcall TForm1::N21Click(TObject *Sender)

{

N12Click(Sender);

}

void __fastcall TForm1::N22Click(TObject *Sender)

{

N13Click(Sender);

}

void __fastcall TForm1::N23Click(TObject *Sender)

{

N14Click(Sender);

}

void __fastcall TForm1::N24Click(TObject *Sender)

{

N17Click(Sender);

}

void __fastcall TForm1::N31Click(TObject *Sender)

{

RichEdit1->SelectAll();

}

void __fastcall TForm1::N32Click(TObject *Sender)

{

N31Click(Sender);

}

void __fastcall TForm1::ComboBox1Change(TObject *Sender)

{

RichEdit1->SelAttributes->Name = ComboBox1->Text;

}

void __fastcall TForm1::ComboBox2Change(TObject *Sender)

{

RichEdit1->SelAttributes->Size = StrToInt(ComboBox2->Text);

}

void __fastcall TForm1::N33Click(TObject *Sender)

{

MessageBox(NULL, "Лабораторная работа № 17\n", "О программе...", MB_OK | MB_ICONINFORMATION);

}

void __fastcall TForm1::ToolButton1Click(TObject *Sender)

{

N9Click(Sender);

}

void __fastcall TForm1::ToolButton3Click(TObject *Sender)

{

N5Click(Sender);

}

void __fastcall TForm1::ToolButton2Click(TObject *Sender)

{

N6Click(Sender);

}

void __fastcall TForm1::N34Click(TObject *Sender)

{

RichEdit1->Paragraph->Alignment = taLeftJustify;

N34->Checked = true;

N35->Checked = false;

N36->Checked = false;

}

void __fastcall TForm1::N35Click(TObject *Sender)

{

RichEdit1->Paragraph->Alignment = taCenter;

N34->Checked = false;

N35->Checked = true;

N36->Checked = false;

}

void __fastcall TForm1::N36Click(TObject *Sender)

{

RichEdit1->Paragraph->Alignment = taRightJustify;

N34->Checked = false;

N35->Checked = false;

N36->Checked = true;

}

void __fastcall TForm1::ToolButton4Click(TObject *Sender)

{

N34Click(Sender);

}

void __fastcall TForm1::ToolButton6Click(TObject *Sender)

{

N35Click(Sender);

}

void __fastcall TForm1::ToolButton7Click(TObject *Sender)

{

N36Click(Sender);

}

void __fastcall TForm1::ToolButton10Click(TObject *Sender)

{

N10Click(Sender);

}

 

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

1. Архангельский А.Я. Программирование в C++ Builder 6 и 2006 / А.Я. Архангельский, М.А. Тагин – М.: Бином, 2007.

2. Дейтел Х.М. Как программировать на С++ / Х.М. Дейтел, П.Дж. Дейтел. – М.: Бином, 2007.

3. Павловская Т.А. C/C++. Программирование на языке высокого уровня / Т.А. Павловская. – СПб.: Питер, 2005.

4. Подбельский В.В. Язык С++ / В.В. Подбельский. – М.: Финансы и статистика, 2006.

5. Труб И.И. Объектно-ориентированное моделирование на С++: учебный курс / И.И. Труб. – СПб.: Питер, 2006.

6. Франка П. С++: учебный курс / П. Франка. – СПб.: Питер, 2006.

 

ОГЛАВЛЕНИЕ

Лабораторная работа 1. Знакомство со средой C++ Builder 6.0. Создание консольного приложения 3

Лабораторная работа 2. Переменные и константы. Базовые типы. Арифметические операции 8

Лабораторная работа 3. Циклический и ветвящийся поток управления.............. 23

Лабораторная работа 4. Функции. Вызов функций с формальными параметрами, передаваемыми по значению 33

Лабораторная работа 5. Одномерные массивы...................................................... 43

Лабораторная работа 6. Многомерные массивы.................................................... 48

Лабораторная работа 7. Функции для работы с символами................................. 53

Лабораторная работа 8. Строки, литералы. Передача строк в функции.............. 56

Лабораторная работа 9. Указатели и динамические массивы............................... 63

Лабораторная работа 10. Динамические структуры данных................................. 71

Лабораторная работа 11. Объектно-ориентированное программирование. Создание классов и объектов 78

Лабораторная работа 12. Знакомство со средой быстрой разработки приложений. Использование компонент библиотеки VCL 84

Лабораторная работа 13. Вывод в форму результатов работы программы........ 94

Лабораторная работа 14. Изучение обработчиков событий компонентов библиотеки VCL 98

Лабораторная работа 15. Использование таймера для создания различных эффектов 102

Лабораторная работа 16. Рисование в канве. Построение графиков функций.. 105

Лабораторная работа 17. Изучение принципа работы текстового редактора.... 111

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ.............................................. 118

 

 

Учебно - практическое издание




Поделиться с друзьями:


Дата добавления: 2015-08-31; Просмотров: 277; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.037 сек.