Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика по Соколовой.docx
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
1.67 Mб
Скачать

Главное окно

unit Unit1;

interface

uses

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

Dialogs, ClipBrd, Menus, StdCtrls, ImgList, ComCtrls, ToolWin, ActnList,

ExtCtrls, RichEdit,IniFiles, Registry, ShellApi, XPMan, Spin;

type

TForm1 = class(TForm)

PopupMenu1: TPopupMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

ToolButton3: TToolButton;

ImageList1: TImageList;

Memo1: TRichEdit;

ActionList1: TActionList;

Bold: TAction;

Italic: TAction;

Underline: TAction;

Timer1: TTimer;

MainMenu1: TMainMenu;

N4: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

N18: TMenuItem;

N19: TMenuItem;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

FontDialog1: TFontDialog;

N21: TMenuItem;

N22: TMenuItem;

Sozdat: TAction;

Shrift: TAction;

Otkrit: TAction;

Sohranit: TAction;

Sohranit_kak: TAction;

Vihod: TAction;

Ob_avtore: TAction;

Kopirovat: TAction;

Virezat: TAction;

Vstavit: TAction;

Otmenit: TAction;

Videlit_vse: TAction;

Udalit: TAction;

N6: TMenuItem;

StatusBar1: TStatusBar;

N23: TMenuItem;

N24: TMenuItem;

ToolButton4: TToolButton;

ToolButton5: TToolButton;

ToolButton6: TToolButton;

ToolButton7: TToolButton;

ToolButton8: TToolButton;

ToolButton9: TToolButton;

Style: TAction;

N25: TMenuItem;

ToolButton10: TToolButton;

ToolButton11: TToolButton;

ToolButton12: TToolButton;

ToolButton13: TToolButton;

ToolButton14: TToolButton;

Hints: TAction;

N26: TMenuItem;

FindDialog1: TFindDialog;

ReplaceDialog1: TReplaceDialog;

N27: TMenuItem;

N28: TMenuItem;

N29: TMenuItem;

N30: TMenuItem;

N31: TMenuItem;

N110: TMenuItem;

N111: TMenuItem;

N112: TMenuItem;

N113: TMenuItem;

N114: TMenuItem;

N115: TMenuItem;

N116: TMenuItem;

N117: TMenuItem;

N118: TMenuItem;

N119: TMenuItem;

ToolButton18: TToolButton;

ToolButton19: TToolButton;

ToolButton20: TToolButton;

ToolButton21: TToolButton;

PoPup: TAction;

N32: TMenuItem;

N33: TMenuItem;

N34: TMenuItem;

N35: TMenuItem;

N36: TMenuItem;

N37: TMenuItem;

N38: TMenuItem;

N39: TMenuItem;

N40: TMenuItem;

N41: TMenuItem;

N42: TMenuItem;

N43: TMenuItem;

N44: TMenuItem;

N45: TMenuItem;

ControlBar1: TControlBar;

ToolBar2: TToolBar;

ToolBar3: TToolBar;

ToolBar4: TToolBar;

ToolBar5: TToolBar;

PopupMenu2: TPopupMenu;

N46: TMenuItem;

ToolBar6: TToolBar;

ComboBox1: TComboBox;

SpinEdit1: TSpinEdit;

ColorBox1: TColorBox;

ToolButton15: TToolButton;

ToolBar7: TToolBar;

Label1: TLabel;

N47: TMenuItem;

ColorBox2: TColorBox;

Label2: TLabel;

procedure N1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure VihodExecute(Sender: TObject);

procedure BoldExecute(Sender: TObject);

procedure ItalicExecute(Sender: TObject);

procedure UnderlineExecute(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure SozdatExecute(Sender: TObject);

procedure OtkritExecute(Sender: TObject);

procedure SohranitExecute(Sender: TObject);

procedure Sohranit_kakExecute(Sender: TObject);

procedure KopirovatExecute(Sender: TObject);

procedure VirezatExecute(Sender: TObject);

procedure VstavitExecute(Sender: TObject);

procedure OtmenitExecute(Sender: TObject);

procedure Videlit_vseExecute(Sender: TObject);

procedure UdalitExecute(Sender: TObject);

procedure ShriftExecute(Sender: TObject);

procedure Ob_avtoreExecute(Sender: TObject);

procedure Memo1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure Memo1KeyUp(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure Memo1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure Memo1MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure FormResize(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure ToolButton9Click(Sender: TObject);

procedure StyleExecute(Sender: TObject);

procedure ToolButton10Click(Sender: TObject);

procedure ToolButton11Click(Sender: TObject);

procedure ToolButton12Click(Sender: TObject);

procedure ToolButton13Click(Sender: TObject);

procedure ToolButton14Click(Sender: TObject);

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

procedure HintsExecute(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure N27Click(Sender: TObject);

procedure FindDialog1Find(Sender: TObject);

procedure N28Click(Sender: TObject);

procedure ReplaceDialog1Find(Sender: TObject);

procedure ReplaceDialog1Replace(Sender: TObject);

procedure N29Click(Sender: TObject);

procedure N30Click(Sender: TObject);

procedure ToolButton18Click(Sender: TObject);

procedure ToolButton19Click(Sender: TObject);

procedure ToolButton20Click(Sender: TObject);

procedure ToolButton21Click(Sender: TObject);

procedure N110Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure Memo1Change(Sender: TObject);

procedure PoPupExecute(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N33Click(Sender: TObject);

procedure N34Click(Sender: TObject);

procedure N36Click(Sender: TObject);

procedure N40Click(Sender: TObject);

procedure N41Click(Sender: TObject);

procedure N39Click(Sender: TObject);

procedure N42Click(Sender: TObject);

procedure N44Click(Sender: TObject);

procedure N45Click(Sender: TObject);

procedure N46Click(Sender: TObject);

procedure ComboBox1Select(Sender: TObject);

procedure SpinEdit1Change(Sender: TObject);

procedure SpinEdit1KeyPress(Sender: TObject; var Key: Char);

procedure ColorBox1Select(Sender: TObject);

procedure N47Click(Sender: TObject);

procedure ColorBox2Select(Sender: TObject);

private

n:integer;

SPos:integer;

cancel,Exec:boolean;

width_down:boolean;

page:integer;

{ Private declarations }

public

Date_string:string;

Time_string:string;

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit2, Unit3, Unit_sss, Unit_color, Unit_ten, Unit_icons, Unit4,

Unit5, Unit6, Unit7, Unit8, Unit9;

{$R *.dfm}

procedure TForm1.N1Click(Sender: TObject);

begin

Memo1.CutToClipBoard;

end;

procedure TForm1.N2Click(Sender: TObject);

begin

Memo1.CopyToClipBoard;

end;

procedure TForm1.N3Click(Sender: TObject);

begin

Memo1.PasteFromClipBoard;

end;

procedure TForm1.ItalicExecute(Sender: TObject);

begin

if fsItalic in Memo1.SelAttributes.Style then

begin

Memo1.SelAttributes.Style:=Memo1.SelAttributes.Style-[fsItalic];

ToolButton2.Down:=false

end

else

begin

Memo1.SelAttributes.Style:=Memo1.SelAttributes.Style+[fsItalic];

ToolButton2.Down:=true;

end;

end;

procedure TForm1.BoldExecute(Sender: TObject);

begin

if fsBold in Memo1.SelAttributes.Style then

begin

Memo1.SelAttributes.Style:=Memo1.SelAttributes.Style-[fsBold];

ToolButton1.Down:=false

end

else

begin

Memo1.SelAttributes.Style:=Memo1.SelAttributes.Style+[fsBold];

ToolButton1.Down:=true;

end;

end;

procedure TForm1.UnderlineExecute(Sender: TObject);

begin

if fsUnderline in Memo1.SelAttributes.Style then

begin

Memo1.SelAttributes.Style:=Memo1.SelAttributes.Style-[fsUnderline];

ToolButton3.Down:=false

end

else

begin

Memo1.SelAttributes.Style:=Memo1.SelAttributes.Style+[fsUnderline];

ToolButton3.Down:=true;

end;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

if Memo1.Paragraph.Alignment=taleftJustify then

ToolButton20.Down:=true

else ToolButton20.Down:=false;

if Memo1.Paragraph.Alignment=tacenter then ToolButton18.Down:=true

else ToolButton18.Down:=false;

if Memo1.Paragraph.Alignment=taRightJustify then ToolButton19.Down:=true

else ToolButton19.Down:=false;

if width_down then ToolButton21.Down:=true

else ToolButton21.Down:=false;

StatusBar1.Panels[5].Text:=ExtractFileName(OpenDialog1.FileName);

StatusBar1.Panels[4].Text:='Строка '+IntToStr(

Memo1.CaretPos.Y+1) + ':'+

'Позиция '+IntToStr (Memo1.CaretPos.X+1);

if (GetKeyState(VK_INSERT)=0) then

StatusBar1.Panels[2].Text:='Замена'

else

StatusBar1.Panels[2].Text:='Вставка';

if (GetKeyState(VK_CAPITAL)=0) then

StatusBar1.Panels[1].Text:='Пописные'

else

StatusBar1.Panels[1].Text:='Заглавные';

StatusBar1.Panels[0].Text:=FormatDateTime(Time_string,Time);

StatusBar1.Panels[7].Text:=FormatDateTime(Date_string,Date);

if fsBold in memo1.SelAttributes.Style then

ToolButton1.Down:=true

else

ToolButton1.Down:=false;

if fsItalic in Memo1.SelAttributes.Style then

ToolButton2.Down:=true

else

ToolButton2.Down:=false;

if fsUnderline in Memo1.SelAttributes.Style then

ToolButton3.Down:=true

else

ToolButton3.Down:=false;

if GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow, nil)) = 67699721 then

StatusBar1.Panels[8].Text:='Английская'

else StatusBar1.Panels[8].Text:='Русская'

end;

procedure TForm1.SozdatExecute(Sender: TObject);

begin

if Memo1.Modified=true then

begin

case MessageDlg('Файл изменён.Хотите сохранить?',mtConfirmation,mbYesNoCancel,0) of

mryes:

begin

with SaveDialog1,Memo1 do

if Execute then

begin

Lines.SaveToFile(FileName);

OpenDialog1.FileName:=FileName;

Memo1.Lines.Clear;

StatusBar1.Panels[5].Text:='';

Form1.Caption:=('Простейший текстовый редактор');

end;

end

else

begin

Memo1.Lines.Clear;

StatusBar1.Panels[5].Text:='';

end;

Form1.Caption:=('Простейший текстовый редактор');

end;

end

else

begin

Memo1.Lines.Clear;

StatusBar1.Panels[5].Text:='';

end;

Form1.Caption:=('Простейший текстовый редактор');

OpenDialog1.FileName:='';

end;

procedure TForm1.OtkritExecute(Sender: TObject);

var

IniFile:TIniFile;

Path, NameFile, NameFile1, NameFile2: String;

n: boolean;

i, j: integer;

begin

j:=0;

if Memo1.Modified then

SozdatExecute(Sozdat)

else cancel:=true;

if cancel then

if OpenDialog1.Execute then

begin

Memo1.Lines.LoadFromFile(OpenDialog1.FileName);

Memo1.Modified:=false;

Path:=Application.ExeName;

Path:=ExtractFileDir(Path);

if Path[Length(Path)]<>'\' then Path:=Path+'\';

IniFile:=TIniFile.Create(Path+'FormOptions.ini');

n:=true;

for i:=9 downto 0 do

if OpenDialog1.FileName=IniFile.ReadString('FILES','File'+IntToStr(i),OpenDialog1.FileName) then

begin

n:=false;

j:=i;

end;

if n then

for i:=9 downto 1 do

begin

NameFile:=IniFile.ReadString('FILES','File'+IntToStr(i-1),NameFile);

IniFile.WriteString('FILES','File'+IntToStr(i),NameFile);

end

else

begin

if j>0 then

for i:=j downto 1 do

begin

NameFile2:=IniFile.ReadString('FILES','File'+IntToStr(i-1),NameFile2);

IniFile.WriteString('FILES','File'+IntToStr(i),NameFile2);

end;

end;

IniFile.WriteString('FILES','File0',string(OpenDialog1.FileName));

InIFile.Free;

end;

end;

procedure TForm1.SohranitExecute(Sender: TObject);

begin

if OpenDialog1.FileName<>'' then

begin

Memo1.Lines.SaveToFile(OpenDialog1.FileName);

Exec:=true;

Memo1.Modified:=false;

end

else

Sohranit_kakExecute(Sohranit_kak);

Sohranit.Enabled:=false;

end;

procedure TForm1.Sohranit_kakExecute(Sender: TObject);

var

i:integer;

S_Name:String;

begin

if Memo1.Text<>'' then

begin

SaveDialog1.FileName:=Memo1.Lines.Strings[0]+'*.rtf';

S_Name:=SaveDialog1.FileName;

i:=pos('*',S_Name);

Delete(S_Name,i,1);

SaveDialog1.FileName:=S_Name;

end;

with SaveDialog1, Memo1 do

if Execute then

begin

Exec:=true;

Lines.SaveToFile(FileName);

OpenDialog1.FileName:=FileName;

Memo1.Modified:=false;

end

else begin Exec:=false; SaveDialog1.FileName:='*.rtf' end;

end;

procedure TForm1.KopirovatExecute(Sender: TObject);

begin

Memo1.CopyToClipboard;

end;

procedure TForm1.VirezatExecute(Sender: TObject);

begin

Memo1.CutToClipboard;

end;

procedure TForm1.VstavitExecute(Sender: TObject);

begin

Memo1.PasteFromClipboard;

end;

procedure TForm1.OtmenitExecute(Sender: TObject);

begin

Memo1.Undo;

end;

procedure TForm1.Videlit_vseExecute(Sender: TObject);

begin

Memo1.SelectAll;

end;

procedure TForm1.UdalitExecute(Sender: TObject);

begin

keybd_event(VK_BACK,0,0,0);

end;

procedure TForm1.ShriftExecute(Sender: TObject);

begin

if FontDialog1.Execute then

Memo1.SelAttributes.Assign(FontDialog1.Font);

Memo1.SetFocus;

end;

procedure TForm1.Ob_avtoreExecute(Sender: TObject);

begin

Form7.ShowModal;

end;

procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

StatusBar1.Panels[6].Text:=IntToStr((Memo1.CaretPos.Y div 55)+1)+' страница'+' из '+IntToStr(page);

if Key = 13 then

begin

n:=n+1;

Form3.Edit1.Text:=IntToStr(n);

end;

if Memo1.Modified

then StatusBar1.Panels[3].Text := 'Файл изменён'

else StatusBar1.Panels[3].Text := '';

SPos:=Memo1.SelStart;

end;

procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if Memo1.Modified then

begin

StatusBar1.Panels[3].Text:='Файл изменен';

Sohranit.Enabled:=true;

end

else

begin

StatusBar1.Panels[3].Text:='Файл не изменен';

Sohranit.Enabled:=false;

end;

end;

procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

StatusBar1.Panels[6].Text:=IntToStr((Memo1.CaretPos.Y div 55)+1)+' страница'+' из '+IntToStr(page);

StatusBar1.Panels[4].Text:=IntToStr(

Memo1.CaretPos.Y+1) + ':'+

IntToStr (Memo1.CaretPos.X+1);

if Memo1.Modified

then StatusBar1.Panels[3].Text := 'Файл изменён'

else StatusBar1.Panels[3].Text := '';

end;

procedure TForm1.Memo1MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

StatusBar1.Panels[4].Text:=IntToStr(

Memo1.CaretPos.Y+1) + ':'+

IntToStr (Memo1.CaretPos.X+1);

if Memo1.Modified

then StatusBar1.Panels[3].Text := 'Файл изменён'

else StatusBar1.Panels[3].Text := '';

end;

procedure TForm1.FormResize(Sender: TObject);

begin

StatusBar1.Panels[4].Text:=IntToStr(

Memo1.CaretPos.Y+1) + ':'+

IntToStr (Memo1.CaretPos.X+1);

if Memo1.Modified

then StatusBar1.Panels[3].Text := 'Файл изменён'

else StatusBar1.Panels[3].Text := '';

end;

procedure TForm1.N5Click(Sender: TObject);

begin

Form3.ShowModal;

end;

procedure TForm1.FormCreate(Sender: TObject);

var IniFile: TIniFile;

Path:string;

ReginiFile:TreginiFile;

begin

Sohranit.Enabled:=false;

page:=1;

width_down:=false;

n:=1;

Path:=Application.ExeName;

Path:=ExtractFileDir(Path);

if Path[Length(Path)]<>'\' then Path:=Path+'\';

IniFile:=TIniFile.Create(Path+'project.ini');

Form1.Top:=IniFile.ReadInteger('FORM1','Form1top',Form1.Top);

Form1.Left:=IniFile.ReadInteger('FORM1','Form1Left',Form1.Left);

Form1.Height:=IniFile.ReadInteger('FORM1','Form1Height',Form1.Height);

Form1.Width:=IniFile.ReadInteger('FORM1','Form1Width',Form1.Width);

IniFile.Free;

RegIniFile:= tReginiFile.Create('Galkina');

Form1.Top:=RegIniFile.ReadInteger('FORM1','Form1top',Form1.Top);

Form1.Left:=RegIniFile.ReadInteger('FORM1','Form1Left',Form1.Left);

Form1.Height:=RegIniFile.ReadInteger('FORM1','Form1Height',Form1.Height);

Form1.Width:=RegIniFile.ReadInteger('FORM1','Form1Width',Form1.Width);

RegIniFile.Free;

Udalit.Enabled:=false;

Videlit_vse.Enabled:=Udalit.Enabled;

Otmenit.Enabled:=false;

Date_String:='dd.mm.yyyy';

Time_String:='hh:nn:ss';

ComboBox1.Items:=Screen.Fonts;

ComboBox1.ItemIndex:=327;

end;

procedure TForm1.ToolButton9Click(Sender: TObject);

begin

Form_sss.ShowModal;

end;

procedure TForm1.StyleExecute(Sender: TObject);

begin

Form_sss.ShowModal;

end;

procedure TForm1.ToolButton10Click(Sender: TObject);

begin

Form_color.ShowModal;

end;

procedure TForm1.ToolButton11Click(Sender: TObject);

begin

Memo1.Paragraph.Numbering:=nsBullet;

end;

procedure TForm1.ToolButton12Click(Sender: TObject);

var

fmt: TParaFormat2;

begin

FillChar( fmt, SizeOf( fmt ), 0 );

fmt.cbSize := SizeOf( fmt );

fmt.dwMask := PFM_NUMBERING or PFM_NUMBERINGSTART or

PFM_NUMBERINGSTYLE or PFM_NUMBERINGTAB;

fmt.wNumbering := 2;

fmt.wNumberingStart := 1;

fmt.wNumberingStyle := $200;

fmt.wNumberingTab := 1440 div 4;

memo1.Perform( EM_SETPARAFORMAT, 0, lParam( @fmt ) );

end;

procedure TForm1.ToolButton13Click(Sender: TObject);

begin

Form_ten.ShowModal;

end;

procedure TForm1.ToolButton14Click(Sender: TObject);

begin

Form_icons.ShowModal;

end;

procedure TForm1.VihodExecute(Sender: TObject);

begin

Close;

end;

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

begin

if Memo1.Lines.Count>0 then

if Memo1.Modified then

case MessageBox(Handle,'Сохранить изменения?','Закрыть',MB_YESNOCANCEL or MB_ICONQUESTION) of

IDYES:

SohranitExecute(Sohranit);

IDNO:

begin

Memo1.Text:='';

OpenDialog1.FileName:='';

SaveDialog1.FileName:='*.rtf';

cancel:=true;

Memo1.Modified:=false;

end;

IDCANCEL:

CanClose:=false;

end;

end;

procedure TForm1.HintsExecute(Sender: TObject);

begin

Form5.ShowModal;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

var IniFile:TIniFile;

Path:string;

ReginiFile:TreginiFile;

begin

Path:=Application.ExeName;

Path:=ExtractFileDir(Path);

if Path[Length(Path)]<>'\' then Path:=Path+'\';

IniFile:=TIniFile.Create(Path+'project.ini');

IniFile.WriteInteger('FORM1','Form1Top',Form1.Top);

IniFile.WriteInteger('FORM1','Form1Left',Form1.Left);

IniFile.WriteInteger('FORM1','Form1Height',Form1.Height);

IniFile.WriteInteger('FORM1','Form1Width',Form1.Width);

IniFile.Free;

RegIniFile:=TReginiFile.Create('Galkina');

RegIniFile.WriteInteger('FORM1','Form1top',Form1.Top);

RegIniFile.WriteInteger('FORM1','Form1Left',Form1.Left);

RegIniFile.WriteInteger('FORM1','Form1Height',Form1.Height);

RegIniFile.WriteInteger('FORM1','Form1Width',Form1.Width);

RegIniFile.Free;

form4.Close;

end;

procedure TForm1.N27Click(Sender: TObject);

begin

SPos:=Memo1.SelStart;

with FindDialog1 do

begin

FindText:=Memo1.SelText;

Position:=Point(Form1.Left, Form1.Top+Memo1.Top);

Options:=Options+[frHideUpDown, frHideWholeWord];

Execute;

end;

end;

procedure TForm1.FindDialog1Find(Sender: TObject);

begin

with FindDialog1 do

begin

if frMatchCase in Options

then

Memo1.SelStart:=Pos(FindText, Copy(Memo1.Lines.Text, SPos+1, Length(Memo1.Lines.Text)))+SPos-1

else

Memo1.SelStart:=Pos(AnsiLowerCase(FindText),

AnsiLowerCase(Copy(Memo1.Lines.Text, SPos+1, Length(Memo1.Lines.Text))))+SPos-1;

if Memo1.SelStart>=SPos Then

begin

Memo1.SelLength:=Length(FindText);

SPos:=Memo1.SelStart+Memo1.SelLength+1;

end

else

if MessageDlg('Текст"'+FindText+'"не найден. Продолжать диалог?',mtConfirmation, mbYesNoCancel,0)<>mrYes

then CloseDialog;

end;

Memo1.SetFocus;

end;

procedure TForm1.N28Click(Sender: TObject);

begin

SPos:=Memo1.SelStart;

with ReplaceDialog1 do

begin

FindText:=Memo1.SelText;

Position:=Point(Form1.Left, Form1.Top+Memo1.Top);

Options:=Options+[frHideUpDown, frHideWholeWord];

Execute;

end;

end;

procedure TForm1.ReplaceDialog1Find(Sender: TObject);

begin

with ReplaceDialog1 do

begin

if frMatchCase in Options

then

Memo1.SelStart:=Pos(FindText, Copy(Memo1.Lines.Text, SPos+1, Length(Memo1.Lines.Text)))+SPos-1

else

Memo1.SelStart:=Pos(AnsiLowerCase(FindText),

AnsiLowerCase(Copy(Memo1.Lines.Text, SPos+1, Length(Memo1.Lines.Text))))+SPos-1;

if Memo1.SelStart>=SPos Then

begin

Memo1.SelLength:=Length(FindText);

SPos:=Memo1.SelStart+Memo1.SelLength;

end

else

if MessageDlg('Текст"'+FindText+'"не найден. Продолжать диалог?',mtConfirmation, mbYesNoCancel,0)<>mrYes

then CloseDialog;

end;

Memo1.SetFocus;

end;

procedure TForm1.ReplaceDialog1Replace(Sender: TObject);

begin

if memo1.SelText<>'' then

Memo1.SelText:=ReplaceDialog1.ReplaceText;

if frReplaceAll in ReplaceDialog1.Options

then ReplaceDialog1Find(Self);

end;

procedure TForm1.N29Click(Sender: TObject);

var

i,j:integer;

l,r,pr:integer;

begin

l:=0; r:=0; pr:=0;

for i:=0 to Memo1.Lines.Count do

for j:=1 to length(Memo1.Lines[i]) do

begin

if Memo1.Lines[i][j] in ['a'..'z','A'..'Z'] then l:=l+1 else

if Memo1.Lines[i][j] in ['а'..'я','А'..'Я'] then r:=r+1 else

pr:=pr+1;

end;

Form6.Chart1.Series[0].Clear;

Form6.Chart1.Series[0].Add(l,'Латинские',clYellow);

Form6.Chart1.Series[0].Add(r,'Русские',clRed);

Form6.Chart1.Series[0].Add(pr,'Прочие',clBlue);

Form6.ShowModal;

end;

procedure TForm1.N30Click(Sender: TObject);

begin

Form_color.ShowModal;

end;

procedure TForm1.ToolButton18Click(Sender: TObject);

begin

Memo1.Paragraph.Alignment:=taCenter;

width_down:=false;

end;

procedure TForm1.ToolButton19Click(Sender: TObject);

begin

Memo1.Paragraph.Alignment:=taRightJustify;

width_down:=false;

end;

procedure TForm1.ToolButton20Click(Sender: TObject);

begin

Memo1.Paragraph.Alignment:=taLeftJustify;

width_down:=false;

end;

procedure TForm1.ToolButton21Click(Sender: TObject);

const

TO_ADVANCEDTYPOGRAPHY = $0001;

TO_SIMPLELINEBREAK = $0002;

EM_SETTYPOGRAPHYOPTIoNS = $04CA;

PFA_JUSTIFY = $0004;

PFA_FULL_INTERWORD = $0005;

var

paraformat: PARAFORMAT2;

begin

//Memo1.SelectAll;

SendMessage(Memo1.Handle, EM_SETTYPOGRAPHYOPTIONS, TO_ADVANCEDTYPOGRAPHY, TO_ADVANCEDTYPOGRAPHY);

paraformat.cbSize := sizeof(PARAFORMAT2);

paraformat.dwMask := PFM_ALIGNMENT;

paraformat.wAlignment := PFA_JUSTIFY;

SendMessage(Memo1.Handle, EM_SETPARAFORMAT, 0, Integer(@paraformat));

width_down:=true;

end;

procedure TForm1.N110Click(Sender: TObject);

var

IniFile:TIniFile;

Path: String;

i,j,poss: integer;

f: TextFile;

buf, fName, NamePunkt, NameFile1, NameFile2, c: string;

begin

Path:=Application.ExeName;

Path:=ExtractFileDir(Path);

if Path[Length(Path)]<>'\' then Path:=Path+'\';

IniFile:=TIniFile.Create(Path+'FormOptions.ini');

fName:=TMenuItem(Sender).Caption;

poss:=Pos('&',fName);

Delete(fName,poss,1);

Memo1.Lines.LoadFromFile(fName);

OpenDialog1.FileName:=fName;

NamePunkt:=TMenuItem(Sender).Name;

j:=StrToInt(Copy(NamePunkt,4,1));

NameFile1:=IniFile.ReadString('FILES','File'+IntToStr(j),NameFile1);

if j>0 then

for i:=j downto 1 do

begin

NameFile2:=IniFile.ReadString('FILES','File'+IntToStr(i-1),NameFile2);

IniFile.WriteString('FILES','File'+IntToStr(i),NameFile2);

end;

IniFile.WriteString('FILES','File0',NameFile1);

IniFile.Free;

end;

procedure TForm1.N4Click(Sender: TObject);

var

IniFile:TIniFile;

Path: String;

File_Name: TMenuItem;

i,j,n: integer;

begin

n:=9;

i:=9;

Path:=Application.ExeName;

Path:=ExtractFileDir(Path);

if Path[Length(Path)]<>'\' then Path:=Path+'\';

IniFile:=TIniFile.Create(Path+'FormOptions.ini');

while (i>=0) do

begin

TMenuItem(FindComponent('N11'+IntToStr(n))).Caption:=IniFile.ReadString('FILES','File'+IntToStr(i),'');

if TMenuItem(FindComponent('N11'+IntToStr(n))).Caption<>'' then

TMenuItem(FindComponent('N11'+IntToStr(n))).Visible:=true;

i:=i-1;

n:=n-1;

end;

InIFile.Free;

end;

procedure TForm1.Memo1Change(Sender: TObject);

begin

Sohranit.Enabled:=true;

if Memo1.Text='' then

begin

Udalit.Enabled:=false;

Videlit_vse.Enabled:=Udalit.Enabled;

end

else

begin

Udalit.Enabled:=true;

Videlit_vse.Enabled:=Udalit.Enabled;

end;

Otmenit.Enabled:=true;

page:=(Memo1.Lines.Count div 55)+1;

end;

procedure TForm1.PoPupExecute(Sender: TObject);

begin

Virezat.Enabled:=Memo1.SelLength>0;

Form1.N33.Enabled:=Memo1.SelLength>0;

Form1.N34.Enabled:=Memo1.SelLength>0;

Form1.N44.Enabled:=Memo1.SelLength>0;

Form1.N45.Enabled:=Memo1.SelLength>0;

Kopirovat.Enabled:=Virezat.Enabled;

Vstavit.Enabled:=Clipboard.HasFormat(CF_Text);

end;

procedure TForm1.N10Click(Sender: TObject);

begin

Close;

end;

procedure TForm1.N33Click(Sender: TObject);

begin

Memo1.SelText:=AnsiUpperCase(Memo1.SelText);

end;

procedure TForm1.N34Click(Sender: TObject);

begin

Memo1.SelText:=AnsiLowerCase(Memo1.SelText);

end;

procedure TForm1.N36Click(Sender: TObject);

begin

Form_color.ShowModal;

end;

procedure TForm1.N40Click(Sender: TObject);

begin

Memo1.Paragraph.Alignment:=taLeftJustify;

end;

procedure TForm1.N41Click(Sender: TObject);

begin

Memo1.Paragraph.Alignment:=taCenter;

end;

procedure TForm1.N39Click(Sender: TObject);

begin

Memo1.Paragraph.Alignment:=taRightJustify;

end;

procedure TForm1.N42Click(Sender: TObject);

const

TO_ADVANCEDTYPOGRAPHY = $0001;

TO_SIMPLELINEBREAK = $0002;

EM_SETTYPOGRAPHYOPTIoNS = $04CA;

PFA_JUSTIFY = $0004;

PFA_FULL_INTERWORD = $0005;

var

paraformat: PARAFORMAT2;

begin

//Memo1.SelectAll;

SendMessage(Memo1.Handle, EM_SETTYPOGRAPHYOPTIONS, TO_ADVANCEDTYPOGRAPHY, TO_ADVANCEDTYPOGRAPHY);

paraformat.cbSize := sizeof(PARAFORMAT2);

paraformat.dwMask := PFM_ALIGNMENT;

paraformat.wAlignment := PFA_JUSTIFY;

SendMessage(Memo1.Handle, EM_SETPARAFORMAT, 0, Integer(@paraformat));

end;

procedure TForm1.N44Click(Sender: TObject);

begin

Memo1.SelText:=AnsiUpperCase(Memo1.SelText);

end;

procedure TForm1.N45Click(Sender: TObject);

begin

Memo1.SelText:=AnsiLowerCase(Memo1.SelText);

end;

procedure TForm1.N46Click(Sender: TObject);

begin

Form8.ShowModal;

end;

procedure TForm1.ComboBox1Select(Sender: TObject);

begin

Memo1.SelAttributes.Name:=ComboBox1.Items[ComboBox1.ItemIndex];

Memo1.SetFocus;

end;

procedure TForm1.SpinEdit1Change(Sender: TObject);

begin

if SpinEdit1.Text<>'' then

begin

Memo1.SelAttributes.Size:=SpinEdit1.Value;

if SpinEdit1.Value>72 then

SpinEdit1.Value:=72;

end;

if Memo1.SelLength>0 then

Memo1.SetFocus;

end;

procedure TForm1.SpinEdit1KeyPress(Sender: TObject; var Key: Char);

begin

if not (key in ['0'..'9',#8]) then

key:=#0;

end;

procedure TForm1.ColorBox1Select(Sender: TObject);

begin

Memo1.Color:=ColorBox1.Selected;

end;

procedure TForm1.N47Click(Sender: TObject);

begin

Form9.ShowModal;

end;

procedure TForm1.ColorBox2Select(Sender: TObject);

begin

Form1.Memo1.SelAttributes.Color:=ColorBox2.Selected;

end;

end.