pascalabcnet/TestSuite/CompilationSamples/TextEditor.pas
Бондарев Иван e6e67c193c initial commit
2015-05-14 21:35:07 +02:00

91 lines
2.7 KiB
ObjectPascal

{$apptype windows}
{$reference 'System.Windows.Forms.dll'}
{$reference 'System.Drawing.dll'}
{$resource 'Open.png'}
{$resource 'Save.png'}
uses System.Windows.Forms;
const
TextFileExt = 'txt';
TextFileFilter = 'Òåêñòîâûå ôàéëû (*.'+TextFileExt+')|*.'+TextFileExt;
var
myForm: Form;
TextBox1: TextBox;
procedure SaveFile(FileName: string);
begin
//Ñîçäàåì ôàéëîâûé ïîòîê ñ êîäèðîâêîé Windows 1251, íåîáõîäèìî äëÿ êîððåêòíîãî ñîõðàíåíèÿ ðóññêèõ áóêâ
var f := new System.IO.StreamWriter(FileName, false, System.Text.Encoding.Default);
f.Write(TextBox1.Text);
f.Close;
end;
procedure OpenFile(FileName: string);
begin
//Ñîçäàåì ôàéëîâûé ïîòîê ñ êîäèðîâêîé Windows 1251, íåîáõîäèìî äëÿ êîððåêòíîãî ÷òåíèÿ ðóññêèõ áóêâ
var f := new System.IO.StreamReader(FileName, System.Text.Encoding.Default);
TextBox1.Text := f.ReadToEnd;
f.Close;
end;
procedure FormClose(sender: object; args: System.EventArgs);
begin
myForm.Close;
end;
procedure MenuSaveClick(sender:object; args:System.EventArgs);
begin
//Äèàëîã äëÿ âûáîðà ôàéëà
var sd := new SaveFileDialog;
//Ðàñøèðåíèå ïîóìîë÷àíèþ
sd.DefaultExt := TextFileExt;
//Ôèëüòð äëÿ äèàëãà
sd.Filter := TextFileFilter;
if sd.ShowDialog=DialogResult.OK then
//åñëè ðåçóëüòàò âûïîëíåíèÿ sd.ShowDialog ýòî íàæàòèå êíîïêè ïîäòâåðæäåíèÿ òî
SaveFile(sd.FileName);
end;
procedure MenuOpenClick(sender:object; args:System.EventArgs);
begin
var sd := new OpenFileDialog;
sd.DefaultExt := TextFileExt;
sd.Filter := TextFileFilter;
if sd.ShowDialog = DialogResult.OK then
OpenFile(sd.FileName);
end;
begin
myForm := new Form;
myForm.Text := 'Ïðîñòîé òåêñòîâûé ðåäàêòîð';
TextBox1 := new TextBox;
TextBox1.Multiline := True;
TextBox1.Height := 100;
TextBox1.Dock := DockStyle.Fill;
//Ïîëîñû ïðîêðóòêè
TextBox1.ScrollBars := ScrollBars.Both;
//Óñòàíàâëèâàåì øðèôò
TextBox1.Font := new System.Drawing.Font('Courier New',10);
myForm.Controls.Add(TextBox1);
//Ñîçäàåì ìåíþ
var toolStrip1 := new ToolStrip;
toolStrip1.GripStyle := System.Windows.Forms.ToolStripGripStyle.Hidden;
var miFile := new ToolStripMenuItem('Ôàéë');
miFile.DropDownItems.Add(new ToolStripMenuItem('Îòêðûòü', new System.Drawing.Bitmap(GetResourceStream('Open.png')),MenuOpenClick));
miFile.DropDownItems.Add(new ToolStripMenuItem('Ñîõðàíèòü êàê...',new System.Drawing.Bitmap(GetResourceStream('Save.png')),MenuSaveClick));
miFile.DropDownItems.Add(new ToolStripMenuItem('Âûõîä',nil,FormClose));
toolStrip1.Items.Add(miFile);
myForm.Controls.Add(toolStrip1);
//Ïîñìîòðèì â àðãóìåíòû êîìàíäíîé ñòðîêè
//Åñëè èõ êîëè÷åñòâî = 1, òî îòêðûâàåì
if CommandLineArgs.Length = 1 then
OpenFile(CommandLineArgs[0]);
Application.Run(myForm);
end.