Учебная работа. Реферат: Разработка текстового редактора 2

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Контрольные рефераты

Учебная работа. Реферат: Разработка текстового редактора 2

Содержание

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.

]]>