Реферат

Реферат Разработка текстового редактора 2

Работа добавлена на сайт bukvasha.net: 2015-10-28

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 21.9.2024





Содержание
1 Постановка задачи. 3

2 Этапы реализации. 4

Список использованных источников. 5

Приложение А. Руководство пользователя. 6

Приложение Б. Руководство программиста. 7

Приложение В. Листинг программы.. 8





1. Постановка задачи

Разработать простейший текстовый редактор. Редактор должен иметь системное меню, состоящее из следующих пунктов: Файл, Настройки, Информация.

Пункт «Файл» содержит подпункты: Новый, Открыть, Сохранить, Сохранить как, Выход.

Пункт «Настройки» содержит подпункты: Шрифт, Цвет: текста, фона; Панель горячих клавиш.

Пункт «Информация» содержит подпункты: О программе.

Редактор должен обладать горячими клавишами, осуществляющими дублирование основных функций редактора. При их реализации использовать ранее написанный программный код. При сохранении информации также сохраняются пользовательские настройки. При открытии ранее сохраненного файла пользовательские настройки восстанавливаются. Редактор должен иметь функцию ввода структурированного текста, которые вводятся в отдельное поле. Также имеется возможность выбрать необходимую информацию из предлагаемого списка. Если информация пользователя введена и выбрано что-то из списка, то данная информация переносится в конец текста при нажатии на кнопку «перенос». Если указан один из параметров, то перенос осуществляется в то место где стоит курсор. Редактор должен обладать системой логического контроля за действиями пользователя. При необходимости выдавать необходимую информацию на экран. Предусмотреть все логические ветви.

2. Этапы реализации 




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

2.  Поместили на форму компоненты Memo, MainMenu, Panel.

3.  Создали главное меню и пункты в нем. В каждом пункте меню описали событие OnClick.

4.  В панели горячих клавиш Panel создали кнопки Speedbutton.



Приложение А

Руководство пользователя


Редактор имеет главное меню, в котором пользователь может выбрать нужное действие. Также ряды кнопок расположены на панели горячих клавиш. Это кнопки меню «Файл», «Правка», «Настройки». Эти панели можно убрать, нажав правой кнопкой мыши по панели и выбрав ненужную панель. Также можно убрать всю панель во вкладке «Настройки», выбрав пункт «Панель горячих клавиш». В настройках пользователь может изменить шрифт текста, цвет текста, цвет фона, выравнивание текста. Выбрав пункт «Структурированный текст» пользователь может вводить разного рода текст и вставлять этот текст в нужном месте в нужное время.


                                       Рисунок 1 – Текстовый редактор

Приложение Б

Руководство программиста




Использованные компоненты в unit1 form1:

- Memo. Главным компонентом в данной программе является компонент Memo типа TMemo. Он используется для ввода и отображения многострочных текстов. Компонент визуальный.

- MainMenu. Позволяет конструировать и создавать полосу главного меню формы и выпадающие меню. Компонент невизуальный.

- Panel. Используется для размещения компонентов на панели. Компонент визуальный.

- Speedbutton. Инструментальная панель для быстрого доступа к часто используемым функциям приложения. Компонент визуальный. Speedbutton используются для реализации на панели горячих клавиш.

- OpenDialog, SaveDialog, FontDialog, ColorDialog из вкладки Dialogs предназначены для окна диалога открытия, сохранения, шрифта и цвета.

Использованные компоненты в unit2 form2:

     - MaskEdit - Этот специальный редактор, из вкладки Additional допускает лишь           

     ввод текста, соответствующего заданному программистом шаблону.

-                       Button – Кнопка.

Приложение В

Листинг программы





unit Unit1;
interface
uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, Menus, Buttons, ComCtrls,IniFiles, ToolWin, ActnMan,

  ActnCtrls, ExtCtrls, ImgList, Mask;
type

  TForm1 = class(TForm)

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    N5: TMenuItem;

    N6: TMenuItem;

    N7: TMenuItem;

    N8: TMenuItem;

    N9: TMenuItem;

    N10: TMenuItem;

    N11: TMenuItem;

    N12: TMenuItem;

    Memo1: TMemo;

    OpenDialog1: TOpenDialog;

    SaveDialog1: TSaveDialog;

    FontDialog1: TFontDialog;

    ColorDialog1: TColorDialog;

    N13: TMenuItem;

    ImageList1: TImageList;

    N25: TMenuItem;

    N26: TMenuItem;

    Panel1: TPanel;

    SpeedButton1: TSpeedButton;

    SpeedButton2: TSpeedButton;

    SpeedButton3: TSpeedButton;

    SpeedButton4: TSpeedButton;

    N14: TMenuItem;

    SpeedButton5: TSpeedButton;

    procedure N3Click(Sender: TObject);

    procedure N5Click(Sender: TObject);

    procedure N4Click(Sender: TObject);

    procedure N2Click(Sender: TObject);

    procedure N6Click(Sender: TObject);

    procedure N8Click(Sender: TObject);

    procedure N11Click(Sender: TObject);

    procedure N10Click(Sender: TObject);

    procedure FormResize(Sender: TObject);

    procedure ToolButton1Click(Sender: TObject);

    procedure ToolButton2Click(Sender: TObject);

    procedure ToolButton3Click(Sender: TObject);

    procedure ToolButton4Click(Sender: TObject);

    procedure ToolButton5Click(Sender: TObject);

    procedure N21Click(Sender: TObject);

    procedure N22Click(Sender: TObject);

    procedure N23Click(Sender: TObject);

    procedure N24Click(Sender: TObject);

    procedure ToolButton6Click(Sender: TObject);

    procedure ToolButton7Click(Sender: TObject);

    procedure ToolButton8Click(Sender: TObject);

    procedure ToolButton9Click(Sender: TObject);

    procedure ToolButton10Click(Sender: TObject);

    procedure N20Click(Sender: TObject);

    procedure ToolButton12Click(Sender: TObject);

    procedure ToolButton13Click(Sender: TObject);

    procedure ToolButton14Click(Sender: TObject);

    procedure ToolButton16Click(Sender: TObject);

    procedure ToolButton17Click(Sender: TObject);

    procedure ToolButton11Click(Sender: TObject);

    procedure N13Click(Sender: TObject);

    procedure N26Click(Sender: TObject);

    procedure N27Click(Sender: TObject);

    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

    procedure N14Click(Sender: TObject);

    procedure SpeedButton1Click(Sender: TObject);

    procedure SpeedButton2Click(Sender: TObject);

    procedure SpeedButton3Click(Sender: TObject);

    procedure SpeedButton4Click(Sender: TObject);

    procedure SpeedButton5Click(Sender: TObject);
  private

    { Private declarations }

  public

    { Public declarations }

  end;
var

  Form1: TForm1;

  IniFile:TIniFile;

implementation
uses Unit2, Unit3;
{$R *.dfm}
procedure TForm1.N3Click(Sender: TObject);

var a,i:integer;

    s,s2:string;

begin

 if OpenDialog1.FilterIndex=1 then begin

    OpenDialog1.DefaultExt:='txt';

  end

  else if OpenDialog1.FilterIndex=2 then begin

    OpenDialog1.DefaultExt:='doc';

    end;

if form1.Memo1.Modified=true then

begin

a:=Application.MessageBox('Сохранить изменения в документе','',3);

if a=6 then

N4Click(Sender) else

if a=7 then

If OpenDialog1.Execute then

begin

form1.Memo1.Lines.Clear;

Form1.Memo1.Lines.LoadFromFile(Form1.OpenDialog1.FileName);

Form1.Caption:= ExtractFileName(Form1.OpenDialog1.FileName);

form1.Memo1.Modified:=false;

IniFile:=TInifile.Create(ExtractFilePath(OpenDialog1.FileName)+ExtractFileName(Form1.OpenDialog1.FileName));

if Inifile.SectionExists('Main') then

begin

Form1.Memo1.Font.Color:=Inifile.ReadInteger('Main','TxtColor',0);

Form1.Memo1.Font.Height:=Inifile.ReadInteger('Main','Height',Height);

Form1.Memo1.Font.Name:=Inifile.ReadString('Main','Name',Name);

Form1.Memo1.Font.Size:=Inifile.ReadInteger('Main','Size',1);

Form1.Memo1.color:=IniFile.ReadInteger('Main','FonColor',0);

for i:=0 to 5 do

Memo1.Lines.Delete(Memo1.Lines.Count-1);

end

end

end

else

If OpenDialog1.Execute then

begin

form1.Memo1.Lines.Clear;

Form1.Memo1.Lines.LoadFromFile(Form1.OpenDialog1.FileName);

Form1.Caption:= ExtractFileName(Form1.OpenDialog1.FileName);

form1.Memo1.Modified:=false;

IniFile:=TInifile.Create(ExtractFilePath(OpenDialog1.FileName)+ExtractFileName(Form1.OpenDialog1.FileName));

if Inifile.SectionExists('Main') then

begin
Form1.Memo1.Font.Color:=Inifile.ReadInteger('Main','Txtcolor',0);

Form1.Memo1.Font.Height:=Inifile.ReadInteger('Main','Height',Height);

Form1.Memo1.Font.Name:=Inifile.ReadString('Main','Name',Name);

Form1.Memo1.Font.Size:=Inifile.ReadInteger('Main','Size',1);

Form1.Memo1.color:=Inifile.ReadInteger('Main','FonColor',0);

for i:=0 to 5 do

Memo1.Lines.Delete(Memo1.Lines.Count-1);

end;

Memo1.Modified := false;

end;
end;
procedure TForm1.N5Click(Sender: TObject);

begin

if SaveDialog1.FilterIndex=1 then begin

    SaveDialog1.DefaultExt:='txt';

  end

  else if SaveDialog1.FilterIndex=2 then begin

    SaveDialog1.DefaultExt:='doc';

    end;
If SaveDialog1.Execute  then

begin

form1.Memo1.Modified:=false;

form1.Memo1.Lines.SaveToFile(Form1.SaveDialog1.Filename );

Form1.Caption:=ExtractFileName(Form1.SaveDialog1.FileName);
IniFile:=TInifile.Create(ExtractFilePath(SaveDialog1.FileName)+ExtractFileName(Form1.SaveDialog1.FileName));

with IniFile do begin

WriteInteger('Main','TxtColor',Form1.Memo1.Font.Color);

WriteInteger('Main','Height',Form1.Memo1.Font.Height);

WriteString('Main','Name',Form1.Memo1.Font.Name);

WriteInteger('Main','Size',Form1.Memo1.Font.Size);

end;

with IniFile  do

WriteInteger('Main','FonColor',Form1.Memo1.Color);

end;

end;
procedure TForm1.N4Click(Sender: TObject);

begin

If form1.SaveDialog1.FileName <> '' then

begin

form1.Memo1.Lines.SaveToFile(Form1.SaveDialog1.FileName);

Form1.Caption:=ExtractFileName(Form1.SaveDialog1.FileName);

form1.Memo1.Modified:=false;

if Form1.SaveDialog1.FileName<>'' then

IniFile:=TInifile.Create(ExtractFilePath(SaveDialog1.FileName)+ExtractFileName(Form1.SaveDialog1.FileName))

else IniFile:=TInifile.Create(ExtractFilePath(OpenDialog1.FileName)+ExtractFileName(Form1.OpenDialog1.FileName));

with IniFile, Form1.Memo1.Font do begin

WriteInteger('Main','TxtColor',Form1.Memo1.Font.Color);

WriteInteger('Main','Height',Height);

WriteString('Main','Name',Name);

WriteInteger('Main','Size',Size);

end;

with IniFile  do

WriteInteger('Main','FonColor',Form1.Memo1.Color);

end

else

if form1.OpenDialog1.FileName<>'' then

begin

form1.Memo1.Lines.SaveToFile(Form1.OpenDialog1.FileName);

Form1.Caption:=ExtractFileName(Form1.OpenDialog1.FileName);

form1.Memo1.Modified:=false;

IniFile:=TInifile.Create(ExtractFilePath(OpenDialog1.FileName)+ExtractFileName(Form1.OpenDialog1.FileName));

with IniFile, Form1.Memo1.Font do begin

WriteInteger('Main','TxtColor',Form1.Memo1.Font.Color);

WriteInteger('Main','Height',Height);

WriteString('Main','Name',Name);

WriteInteger('Main','Size',Size);

end;

 with IniFile  do

WriteInteger('Main','FonColor',Form1.Memo1.Color);

end

else

N5Click(Sender);

end;
procedure TForm1.N2Click(Sender: TObject);

var a:integer;

begin

if form1.Memo1.Modified=true then

begin

a:=Application.MessageBox('Сохранить изменения в документе','',3);

if a=6 then

begin

N4Click(Sender);

Form1.Memo1.Lines.Clear;

Form1.SaveDialog1.FileName:='';

Form1.OpenDialog1.FileName:='';

Form1.Caption:='Безымянный';

end

else

if a=7 then

begin

Form1.Memo1.Lines.Clear;

Form1.SaveDialog1.FileName:='';

Form1.OpenDialog1.FileName:='';

Form1.Caption:='Безымянный';

end

end

else

begin

Form1.Memo1.Lines.Clear;

Form1.SaveDialog1.FileName:='';

Form1.OpenDialog1.FileName:='';

Form1.Caption:='Безымянный';

end

end;
procedure TForm1.N6Click(Sender: TObject);

var a:integer;

begin

if Form1.Memo1.Modified=true then

begin

a:=Application.MessageBox('Сохранить изменения в документе','',3);

if a=6 then

N4Click(Sender)

else if a=7 then

Form1.Close;

end

else Form1.Close;

end;
procedure TForm1.N8Click(Sender: TObject);

begin

if Form1.FontDialog1.Execute then

Form1.Memo1.Font:=Form1.FontDialog1.Font;

end;
procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

N2Click(sender);

end;
procedure TForm1.SpeedButton2Click(Sender: TObject);

begin

N3Click(Sender);

end;
procedure TForm1.SpeedButton3Click(Sender: TObject);

begin

N4Click(Sender);

end;
procedure TForm1.SpeedButton4Click(Sender: TObject);

begin

N5Click(Sender);

end;
procedure TForm1.SpeedButton5Click(Sender: TObject);

begin

N6Click(Sender);

end;
procedure TForm1.N11Click(Sender: TObject);

begin

If Form1.ColorDialog1.Execute then

Form1.Memo1.Color:=Form1.ColorDialog1.Color;

end;
procedure TForm1.N10Click(Sender: TObject);

begin

If Form1.ColorDialog1.Execute then

Form1.Memo1.Font.Color:=Form1.ColorDialog1.Color;

end;
procedure TForm1.FormResize(Sender: TObject);

begin

Memo1.Height:=Form1.Height-110;

Memo1.Width:=Form1.Width;

end;
procedure TForm1.ToolButton1Click(Sender: TObject);

begin

N2Click(Sender);

end;
procedure TForm1.ToolButton2Click(Sender: TObject);

begin

N3Click(Sender);

end;
procedure TForm1.ToolButton3Click(Sender: TObject);

begin

N4Click(Sender);

end;
procedure TForm1.ToolButton4Click(Sender: TObject);

begin

N5Click(Sender);

end;
procedure TForm1.ToolButton5Click(Sender: TObject);

begin

N6Click(Sender);

end;
procedure TForm1.N21Click(Sender: TObject);

begin

Memo1.CutToClipboard;

end;
procedure TForm1.N22Click(Sender: TObject);

begin

Memo1.CopyToClipboard;

end;

procedure TForm1.N23Click(Sender: TObject);

begin

Memo1.PasteFromClipboard;

end;

procedure TForm1.N24Click(Sender: TObject);

begin

Memo1.ClearSelection;

end;
procedure TForm1.ToolButton6Click(Sender: TObject);

begin

N20Click(Sender);

end;
procedure TForm1.ToolButton7Click(Sender: TObject);

begin

N21Click(Sender);

end;
procedure TForm1.ToolButton8Click(Sender: TObject);

begin

N22Click(Sender);

end;
procedure TForm1.ToolButton9Click(Sender: TObject);

begin

N23Click(Sender);

end;
procedure TForm1.ToolButton10Click(Sender: TObject);

begin

N24Click(Sender);

end;
procedure TForm1.N20Click(Sender: TObject);

begin

Memo1.SelectAll

end;
procedure TForm1.ToolButton12Click(Sender: TObject);

begin

Form1.Memo1.Alignment:=taleftJustify

end;
procedure TForm1.ToolButton13Click(Sender: TObject);

begin

Form1.Memo1.Alignment:=taCenter;

end;
procedure TForm1.ToolButton14Click(Sender: TObject);

begin

Form1.Memo1.Alignment:=taRightJustify;

end;
procedure TForm1.ToolButton16Click(Sender: TObject);

begin

N10Click(Sender);

end;
procedure TForm1.ToolButton17Click(Sender: TObject);

begin

N11Click(Sender);

end;
procedure TForm1.ToolButton11Click(Sender: TObject);

begin

with Memo1 do

    if HandleAllocated then SendMessage(Handle, EM_UNDO, 0, 0);

end;
procedure TForm1.N13Click(Sender: TObject);

begin

Form1.N13.Tag:=Form1.N13.Tag+1;

if (Form1.N13.Tag mod 2)<>0 then

panel1.Visible:=false

else panel1.Visible:=true;

end;
procedure TForm1.N14Click(Sender: TObject);

begin

form3.Show;

end;
procedure TForm1.N26Click(Sender: TObject);

begin

Form2.show;

end;
procedure TForm1.N27Click(Sender: TObject);

begin

Form3.show;

end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

var a:integer;

begin

if Form1.Memo1.Modified=true then

begin

a:=Application.MessageBox('Сохранить изменения в документе','',3);

if a=6 then

N4Click(Sender)

else if a=7 then

halt

else canclose:=false;

end

end;
end.
unit Unit2;
interface
uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, Mask;
type

  TForm2 = class(TForm)

    MaskEdit1: TMaskEdit;

    Label1: TLabel;

    Button1: TButton;

    Button2: TButton;

    MaskEdit2: TMaskEdit;

    Label2: TLabel;

    Button3: TButton;

    Button4: TButton;

    MaskEdit3: TMaskEdit;

    Label3: TLabel;

    Button5: TButton;

    Button6: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button5Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

    procedure Button6Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;
var

  Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);

begin

Form1.Memo1.Seltext:=MaskEdit1.text;

end;
procedure TForm2.Button2Click(Sender: TObject);

begin

Form1.Memo1.Lines.Add(Maskedit1.Text);

end;
procedure TForm2.Button3Click(Sender: TObject);

begin

Form1.Memo1.Seltext:=MaskEdit2.text;

end;
procedure TForm2.Button5Click(Sender: TObject);

begin

Form1.Memo1.Seltext:=MaskEdit3.text;

end;
procedure TForm2.Button4Click(Sender: TObject);

begin

Form1.Memo1.Lines.Add(Maskedit2.Text);

end;
procedure TForm2.Button6Click(Sender: TObject);

begin

Form1.Memo1.Lines.Add(Maskedit3.Text);

end;
end.
unit Unit3;
interface
uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, ComCtrls, ExtCtrls;
type

  TForm3 = class(TForm)

    Label1: TLabel;

    Label2: TLabel;
  private

    { Private declarations }

  public

    { Public declarations }

  end;
var

  Form3: TForm3;
implementation
uses Unit1, Unit2;
{$R *.dfm}
end.

1. Реферат на тему New Age Essay Research Paper A New
2. Реферат на тему The Influences Of Tolkien In The Lord
3. Контрольная работа на тему функції Європейського центрального банку
4. Реферат на тему Dizzy Gillespie His Life Essay Research Paper
5. Реферат Природа Китая
6. Контрольная работа Предпринимательство в здравоохранении
7. Контрольная работа Монополии в рыночной экономике 2
8. Диплом Психологическое исследование эмоциональных состояний личности в процессе лечебного массажа
9. Реферат Спорт и физическое воспитание студентов
10. Реферат Насилие в отношении детей