Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_информатика4.doc
Скачиваний:
61
Добавлен:
07.02.2015
Размер:
13.31 Mб
Скачать

Лабораторная работа 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);

}