h1

Программа MyNotebook v 2.0

Июль 4, 2009

Более усовершенствованный блокнот нежели  MyNotebook v 1.0. Добвавлены диалоги «Открыть», «Сохранить», возможность изменения цвета фона и настроек шрифта.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls;

type
TfMain = class(TForm)
Memo1: TMemo;
MainMenu1: TMainMenu;
PopupMenu1: TPopupMenu;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
FontDialog1: TFontDialog;
ColorDialog1: TColorDialog;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
procedure Memo1Change(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure N17Click(Sender: TObject);
procedure N11Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
fMain: TfMain;
izmen : Boolean; //изменился ли текст в Memo
myfile : String; //Адрес и имя открытого файла

implementation

uses Unit2;

{$R *.dfm}

{Процедура открытия файла}
procedure Otkrivaem;
begin
with fMain do begin //делать вместе с формой
if OpenDialog1.Execute then begin //если диалог выполнен
//присваиваем переменной myfile адрес и имя выбранного файла:
myfile := OpenDialog1.FileName;

//читаем этот файл в Memo:
Memo1.Lines.LoadFromFile(myfile);
izmen := False; //файл только открыт, изменений еще нет
end; //if
end; //with
end;

{Процедура сохранения файла}
procedure Sohranyaem;
begin
with fMain do begin
//если изменений не было, выходим из процедуры,
//ничего не делая:
if not izmen then Exit;

//Если файл уже открывался, и в переменной myfile
//есть его адрес и имя, просто перезаписываем этот файл:
if myfile <> » then begin
Memo1.Lines.SaveToFile(myfile);
izmen := False;
Exit; //выходим после сохранения
end; //if

{Файл новый, переменная myfile еще пуста. Дальше есть два варианта:
пользователь выберет или укажет файл в диалоге, или не сделает этого}

//если выбрал файл:
if SaveDialog1.Execute then begin
//прописываем адрес и имя файла в переменную:
myfile := SaveDialog1.FileName;
//если нет расширения *.txt то добавляем его:
if copy(myfile, length(myfile)-4, 4) <> ‘.txt’ then
myfile := myfile + ‘.txt’;
//сохраняем Memo в указанный файл:
Memo1.Lines.SaveToFile(myfile);
//файл сохранен, изменений нет:
izmen := False;
end //if
//если не выбрал файл:
else ShowMessage(‘Вы не указали имени файла, файл не сохранен!’);

end; //with
end;

procedure TfMain.Memo1Change(Sender: TObject);
begin
izmen := True;
end;

procedure TfMain.N2Click(Sender: TObject);
begin
Otkrivaem;
end;

procedure TfMain.N12Click(Sender: TObject);
begin
Otkrivaem;
end;

procedure TfMain.N3Click(Sender: TObject);
begin
Sohranyaem;
end;

procedure TfMain.N13Click(Sender: TObject);
begin
Sohranyaem;
end;

procedure TfMain.N6Click(Sender: TObject);
begin
Close;
end;

procedure TfMain.N16Click(Sender: TObject);
begin
Close;
end;

procedure TfMain.N8Click(Sender: TObject);
begin
if FontDialog1.Execute then
Memo1.Font := FontDialog1.Font;
end;

procedure TfMain.N9Click(Sender: TObject);
begin
if ColorDialog1.Execute then
Memo1.Color := ColorDialog1.Color;
end;

procedure TfMain.N4Click(Sender: TObject);
begin
{если файл не сохранен, предупреждаем пользователя об этом. Если он
желает сохранить, то вызываем процедуру сохранения:}
if izmen then
if Application.MessageBox(‘Файл изменен. Сохранить?’, ‘Внимание!’,
MB_YESNO+MB_ICONQUESTION) = IDYES then Sohranyaem;

//теперь закрываем текущий файл:
Memo1.Clear; //очищаем Мемо
myfile := »; //нет имени текущего файла
izmen := False; //нет изменений
end;

procedure TfMain.N14Click(Sender: TObject);
begin
{если файл не сохранен, предупреждаем пользователя об этом. Если он
желает сохранить, то вызываем процедуру сохранения:}
if izmen then
if Application.MessageBox(‘Файл изменен. Сохранить?’, ‘Внимание!’,
MB_YESNO+MB_ICONQUESTION) = IDYES then Sohranyaem;

//теперь закрываем текущий файл:
Memo1.Clear; //очищаем Мемо
myfile := »; //нет имени текущего файла
izmen := False; //нет изменений
end;

procedure TfMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
{если файл не сохранен, предупреждаем пользователя об этом. Если он
желает сохранить, то вызываем процедуру сохранения:}
if izmen then
if Application.MessageBox(‘Файл изменен. Сохранить?’, ‘Внимание!’,
MB_YESNO+MB_ICONQUESTION) = IDYES then Sohranyaem;
end;

procedure TfMain.N17Click(Sender: TObject);
begin
//очищаем Мемо:
Memo1.Clear;
//если открытого файла нет, то нет и изменений:
if myfile = » then izmen := false
//иначе текст изменен:
else izmen := true;
end;

procedure TfMain.N11Click(Sender: TObject);
begin
fAbout.ShowModal;
end;

end.

Advertisements

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: