на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Алгоритм, написание и отладка программы "Текстовый редактор"
p align="left">Для выхода из программы выберите пункт меню «Файл | Выход.

Для сохранности и успешной работы программы не рекомендуется вносить какие-либо изменения в файлы программного пакета, а также следует хранить эти файлы и запускать программу из одной папки.

6. Недостатки и достоинства программы

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

Недостатком программы является отсутствие настроек параметров страницы. Нет предварительного просмотра для отправки на печать.

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

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

Заключение

В результате выполнения курсового проекта была разработана программа, демонстрирующая пример текстового редактора. В программе были использованы основные типы данных, структуры данных, а также программа строилась по модульному принципу.

В результате проделанной работы был повторен и использован при разработке программы пройденный материал по программированию в среде разработки C++Builder 6.

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

Достаточно интересно было работать над самой поставленной задачей. Во время работы был прочитан материал, связанный непосредственно с языком программирования С++.

Библиографический список

1.
Фаронов В.В., Программирование в Builder C++: Учебный курс. - СГб.: Питер, 2004.

2. Архангельский А.Я., Тагин М.А. Приемы программирования в C++Builder 6 и 2006: Вычислительные задачи, работа с документами. - М:ЗАО «Издательство БИНОМ», 2007

3. Архангельский А.Я. Справочное пособие по C++Builder 6 и 2006. Компоненты. - М:ЗАО «Издательство БИНОМ», 2006

Приложение

TeRAn.cpp

#include <vcl.h>

#pragma hdrstop

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

USEFORM("TeR.cpp", Form1);

USEFORM("Unit1.cpp", AboutBox);

USEFORM("Unit2.cpp", Form2);

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

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

try

{

Application->Initialize();

Application->CreateForm(__classid(TForm1), &Form1);

Application->CreateForm(__classid(TForm2), &Form2);

Application->Run();

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

catch (...)

{

try

{

throw Exception("");

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

}

return 0;

}

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

TeR.cpp

#include <vcl.h>

#pragma hdrstop

#include "TeR.h"

#include "Unit1.h"

#include "Unit2.h"

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

#pragma package(smart_init)

#pragma link "CSPIN"

#pragma resource "*.dfm"

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

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

void __fastcall TForm1::SpeedButton4Click(TObject *Sender)

{

if (OpenDialog1->Execute())

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

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

SpeedButton4->Down=false;

}

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

void __fastcall TForm1::SpeedButton14Click(TObject *Sender)

{

if (ColorDialog1->Execute())

RichEdit1->SelAttributes->Color = ColorDialog1->Color;

}

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

void __fastcall TForm1::CSpinEdit1Change(TObject *Sender)

{

if ( CSpinEdit1->Text != "" )

{

RichEdit1->SelAttributes->Size = CSpinEdit1->Value;

}

}

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

void __fastcall TForm1::ComboBox1Change(TObject *Sender)

{

//Выбор шрифта

RichEdit1->SelAttributes->Name=ComboBox1->Items->Strings[ComboBox1 ->ItemIndex];

}

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

void __fastcall TForm1::SpeedButton13Click(TObject *Sender)

{

//Полужирный

if (SpeedButton13->Down==true)

{

RichEdit1->SelAttributes->Style=TFontStyles()<< fsBold;

}

if (SpeedButton13->Down==false)

{

RichEdit1->SelAttributes->Style=TFontStyles();

}

if ((SpeedButton13->Down==true)&&(SpeedButton12->Down==true))

{

RichEdit1->SelAttributes->Style=TFontStyles()<<fsBold<<fsItalic;

}

if ((SpeedButton13->Down==false)&&(SpeedButton12->Down==true))

{

RichEdit1->SelAttributes->Style =TFontStyles()<<fsItalic;

}

if ((SpeedButton13->Down)&&(SpeedButton11->Down))

{

RichEdit1->SelAttributes->Style=TFontStyles()<<fsBold<<fsUnderline;

}

if ((SpeedButton13->Down==false)&&(SpeedButton11->Down==true))

{

RichEdit1->SelAttributes->Style =TFontStyles()<<fsUnderline;

}

if ((SpeedButton13->Down==true)&&(SpeedButton12->Down==true)&&(SpeedButton11->Down==true))

{

RichEdit1->SelAttributes->Style=TFontStyles()<<fsBold<<fsItalic<<fsUnderline;

}

if ((SpeedButton13->Down==false)&&(SpeedButton12->Down==true)&&(SpeedButton11->Down==true))

{

RichEdit1->SelAttributes->Style =TFontStyles()<<fsItalic<<fsUnderline;

}

}

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

void __fastcall TForm1::SpeedButton12Click(TObject *Sender)

{

//курсив

if (SpeedButton12->Down==true)

{

RichEdit1->SelAttributes->Style=TFontStyles()<< fsItalic;

}

if (SpeedButton12->Down==false)

{

RichEdit1->SelAttributes->Style=TFontStyles();

}

if ((SpeedButton12->Down==true)&&(SpeedButton13->Down==true))

{

RichEdit1->SelAttributes->Style=TFontStyles()<<fsBold<<fsItalic;

}

if ((SpeedButton12->Down==false)&&(SpeedButton13->Down==true))

{

RichEdit1->SelAttributes->Style =TFontStyles()<<fsBold;

}

if ((SpeedButton12->Down)&&(SpeedButton11->Down))

{

RichEdit1->SelAttributes->Style=TFontStyles()<<fsItalic<<fsUnderline;

}

if ((SpeedButton12->Down==false)&&(SpeedButton11->Down==true))

{

RichEdit1->SelAttributes->Style =TFontStyles()<<fsUnderline;

}

if ((SpeedButton13->Down==true)&&(SpeedButton12->Down==true)&&(SpeedButton11->Down==true))

{

RichEdit1->SelAttributes->Style=TFontStyles()<<fsBold<<fsItalic<<fsUnderline;

}

if ((SpeedButton13->Down==true)&&(SpeedButton12->Down==false)&&(SpeedButton11->Down==true))

{

RichEdit1->SelAttributes->Style =TFontStyles()<<fsBold<<fsUnderline;

}

}

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

void __fastcall TForm1::SpeedButton11Click(TObject *Sender)

{

if (SpeedButton11->Down==true)

{

RichEdit1->SelAttributes->Style=TFontStyles()<< fsUnderline;

}

if (SpeedButton11->Down==false)

{

RichEdit1->SelAttributes->Style=TFontStyles();

}

if ((SpeedButton11->Down==true)&&(SpeedButton13->Down==true))

{

RichEdit1->SelAttributes->Style=TFontStyles()<<fsBold<<fsUnderline;

}

if ((SpeedButton11->Down==false)&&(SpeedButton13->Down==true))

{

RichEdit1->SelAttributes->Style =TFontStyles()<<fsBold;

}

if((SpeedButton11->Down==true)&&(SpeedButton12->Down==true))

{

RichEdit1->SelAttributes->Style=TFontStyles()<<fsItalic<<fsUnderline;

}

if ((SpeedButton11->Down==false)&&(SpeedButton12->Down==true))

{

RichEdit1->SelAttributes->Style =TFontStyles()<<fsItalic;

}

if ((SpeedButton13->Down==true)&&(SpeedButton12->Down==true)&&(SpeedButton11->Down==true))

{

RichEdit1->SelAttributes->Style=TFontStyles()<<fsBold<<fsItalic<<fsUnderline;

}

if ((SpeedButton11->Down==false)&&(SpeedButton12->Down==true)&&(SpeedButton13->Down==true))

{

RichEdit1->SelAttributes->Style =TFontStyles()<<fsBold<<fsItalic;

}

}

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

void __fastcall TForm1::SpeedButton3Click(TObject *Sender)

{

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

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

}

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

void __fastcall TForm1::N5Click(TObject *Sender)

{

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

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

}

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

void __fastcall TForm1::SpeedButton1Click(TObject *Sender)

{

RichEdit1->CopyToClipboard();

}

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

void __fastcall TForm1::SpeedButton6Click(TObject *Sender)

{

if (PrintDialog1->Execute()) RichEdit1->Print(" ");

}

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

void __fastcall TForm1::N3Click(TObject *Sender)

{

if (OpenDialog1->Execute())

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

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

}

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

void __fastcall TForm1::SpeedButton7Click(TObject *Sender)

{

FindDialog1->Position = Point(RichEdit1->Left + RichEdit1->Width, RichEdit1->Top);

//FindDialog1->FindText=RichEdit1->SelText;

FindDialog1->Execute();

}

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

void __fastcall TForm1::FindDialog1Find(TObject *Sender)

{

int FoundAt, StartPos, ToEnd;

if (RichEdit1->SelLength)

StartPos = RichEdit1->SelStart + RichEdit1->SelLength;

else

StartPos = 0;

ToEnd = RichEdit1->Text.Length() - StartPos;

FoundAt = RichEdit1->FindText(FindDialog1->FindText, StartPos, ToEnd, TSearchTypes()<< stMatchCase);

if (FoundAt != -1)

{

RichEdit1->SetFocus();

RichEdit1->SelStart = FoundAt;

RichEdit1->SelLength = FindDialog1->FindText.Length();

}

}

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

void __fastcall TForm1::N9Click(TObject *Sender)

{

if (MessageBox(0,"Сохранить содержимое окна редактирования? ","Подтвердите сохранение",MB_YESNO)==IDYES)

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

Application->Terminate();

}

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

void __fastcall TForm1::N16Click(TObject *Sender)

{

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

{

if (MessageBox(0,"Сохранить содержимое окна редактирования? ","Подтвердите сохранение",MB_YESNO)==IDYES)

{

//N9Click(Sender);

}

}

RichEdit1->Clear();

StatusBar1->Panels->Items[0]->Text="Документ";

}

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

void __fastcall TForm1::SpeedButton2Click(TObject *Sender)

{

RichEdit1->CutToClipboard();

}

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

void __fastcall TForm1::SpeedButton5Click(TObject *Sender)

{

RichEdit1->CopyToClipboard();

}

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

void __fastcall TForm1::SpeedButton9Click(TObject *Sender)

{

RichEdit1->PasteFromClipboard();

}

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

void __fastcall TForm1::N20Click(TObject *Sender)

{

ReplaceDialog1->Execute();

}

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

void __fastcall TForm1::ReplaceDialog1Replace(TObject *Sender)

{

TReplaceDialog *dlg = (TReplaceDialog *)Sender;

int SelPos = RichEdit1->Lines->Text.Pos(dlg->FindText);

if (SelPos > 0)

{

RichEdit1->SelStart = SelPos - 1;

RichEdit1->SelLength = dlg->FindText.Length();

RichEdit1->SelText = dlg->ReplaceText;

}

else

MessageBeep(0);

}

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

void __fastcall TForm1::N19Click(TObject *Sender)

{

FindDialog1->Position = Point(RichEdit1->Left + RichEdit1->Width, RichEdit1->Top);

FindDialog1->Execute();

}

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

void __fastcall TForm1::N30Click(TObject *Sender)

{

if(FontDialog1->Execute())

{

RichEdit1->SelAttributes->Assign(FontDialog1->Font);

}

}

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

void __fastcall TForm1::N28Click(TObject *Sender)

{

Application->CreateForm(__classid(TAboutBox), &AboutBox);

AboutBox->ShowModal();

AboutBox->Free();

}

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

void __fastcall TForm1::N7Click(TObject *Sender)

{

if (PrintDialog1->Execute()) RichEdit1->Print(" ");

}

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

void __fastcall TForm1::N24Click(TObject *Sender)

{

StatusBar1->Visible=! StatusBar1->Visible;

N24->Checked=! N24->Checked;

}

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

void __fastcall TForm1::N22Click(TObject *Sender)

{

Panel1->Visible=! Panel1->Visible;

N22->Checked=! N22->Checked;

}

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

void __fastcall TForm1::N23Click(TObject *Sender)

{

Panel2->Visible=! Panel2->Visible;

N23->Checked=! N23->Checked;

}

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

void __fastcall TForm1::SpeedButton16Click(TObject *Sender)

{

if(ColorDialog1->Execute())

{RichEdit1->Color=ColorDialog1->Color;}

}

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

void __fastcall TForm1::SpeedButton17Click(TObject *Sender)

{

RichEdit1->Paragraph->Alignment=taLeftJustify;

}

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

void __fastcall TForm1::SpeedButton18Click(TObject *Sender)

{

RichEdit1->Paragraph->Alignment=taCenter;

}

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

void __fastcall TForm1::SpeedButton19Click(TObject *Sender)

{

if(SpeedButton11->Down==true)

{

RichEdit1->Paragraph->Numbering=nsBullet;

}

else

{

RichEdit1->Paragraph->Numbering=nsNone;

}

}

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

void __fastcall TForm1::SpeedButton15Click(TObject *Sender)

{

RichEdit1->Paragraph->Alignment=taRightJustify;

}

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

void __fastcall TForm1::CSpinEdit1KeyPress(TObject *Sender, char &Key)

{

if((Key!=VK_BACK)&&(Key!='9')&&(Key!='8')&&(Key!='7')&&(Key!='6'))

{

Set <char, '0','9'> Dig;

Dig << '0'<< '1'<< '2' << '3'<< '4' << '5'<< ' 6 '<< ' 7 '<< ' 8 '<< ' 9 ' ;

if ( ! Dig.Contains(Key)) { Key = 0; Beep () ;}

}

}

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

void __fastcall TForm1::FormShow(TObject *Sender)

{

int i;

for (i=0; i<Screen->Fonts->Count; i++)

{

ComboBox1->Items->Add (Screen->Fonts->Strings[i] ) ;

}

CSpinEdit1->Value=RichEdit1->SelAttributes->Size;

}

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

void __fastcall TForm1::RichEdit1MouseUp(TObject *Sender,

TMouseButton Button, TShiftState Shift, int X, int Y)

{

if(RichEdit1->Paragraph->Numbering==nsNone)

{SpeedButton19->Down=false;}

if(RichEdit1->Paragraph->Numbering==nsBullet)

{SpeedButton19->Down=true;}

switch (RichEdit1->Paragraph->Alignment)

{case taLeftJustify: SpeedButton17->Down=true; break;

case taCenter: SpeedButton18->Down=true; break;

case taRightJustify: SpeedButton15->Down=true; break;}

if(RichEdit1->SelAttributes->Style==RichEdit1->SelAttributes->Style<<fsBold)

{SpeedButton13->Down=true;}

else{SpeedButton13->Down=false;}

if(RichEdit1->SelAttributes->Style==RichEdit1->SelAttributes->Style<<fsUnderline)

{SpeedButton11->Down=true;}

else{SpeedButton11->Down=false;}

if(RichEdit1->SelAttributes->Style==RichEdit1->SelAttributes->Style<<fsItalic)

{SpeedButton12->Down=true;}

else{SpeedButton12->Down=false;}

CSpinEdit1->Value=RichEdit1->SelAttributes->Size;

ComboBox1->ItemIndex = ComboBox1->Items->IndexOf(RichEdit1->SelAttributes->Name) ;

}

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

void __fastcall TForm1::RichEdit1KeyUp(TObject *Sender, WORD &Key,

TShiftState Shift)

{

if(RichEdit1->Paragraph->Numbering==nsNone)

{SpeedButton19->Down=false;}

if(RichEdit1->Paragraph->Numbering==nsBullet)

{SpeedButton19->Down=true;}

switch (RichEdit1->Paragraph->Alignment)

{case taLeftJustify: SpeedButton17->Down=true; break;

case taCenter: SpeedButton18->Down=true; break;

case taRightJustify: SpeedButton15->Down=true; break;}

if(RichEdit1->SelAttributes->Style==RichEdit1->SelAttributes->Style<<fsBold)

{SpeedButton13->Down=true;}

else{SpeedButton13->Down=false;}

if(RichEdit1->SelAttributes->Style==RichEdit1->SelAttributes->Style<<fsUnderline)

{SpeedButton11->Down=true;}

else{SpeedButton11->Down=false;}

if(RichEdit1->SelAttributes->Style==RichEdit1->SelAttributes->Style<<fsItalic)

{SpeedButton12->Down=true;}

else{SpeedButton12->Down=false;}

CSpinEdit1->Value=RichEdit1->SelAttributes->Size;

ComboBox1->ItemIndex = ComboBox1->Items->IndexOf(RichEdit1->SelAttributes->Name) ;

}

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

void __fastcall TForm1::FormCreate(TObject *Sender)

{

RichEdit1->Clear();

}

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

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)

{

Action=caFree;

}

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

void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)

{

if(RichEdit1->Modified)

{

int res=Application->MessageBox("Текст документа не сохранен. \n\n" "Сохранить документ в файле\n\n" "(Отмена - продолжение работы)", "Подтвердите завершение работы", MB_YESNOCANCEL+MB_ICONQUESTION);

switch(res)

{

case IDYES: N5Click(Sender); break;

case IDCANCEL: CanClose=false;

}

}

}

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

void __fastcall TForm1::N26Click(TObject *Sender)

{

Application->CreateForm(__classid(TForm2), &Form2);

Form2->Memo1->Lines->LoadFromFile("hlp");

Form2->ShowModal();

Form2->Free();

}

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.