I'm making a Notepad clone. I've implemented 70% of the options, but there are options that I don't know how to do, and I can't figure out how. Like Save
and Save As
options.
When I open some text that has already been saved, and then insert something new into it, how can the Save
option save to that file and not look like Save As
? This way, when I open and want to save, it looks like I'm only making that file for the first time.
And as for the New
option, I inserted via TMainMenu
that the file name (an additional variable in the TForm
instance) should reset to blank, so does the window title.
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Menus, StdCtrls,
PrintersDlgs;
type
{ TForm1 }
TForm1 = class(TForm)
FindDialog1: TFindDialog;
FontDialog1: TFontDialog;
MainMenu1: TMainMenu;
Memo1: TMemo;
MenuItem1: TMenuItem;
MenuItem10: TMenuItem;
MenuItem11: TMenuItem;
MenuItem12: TMenuItem;
MenuItem13: TMenuItem;
MenuItem14: TMenuItem;
MenuItem15: TMenuItem;
MenuItem16: TMenuItem;
MenuItem17: TMenuItem;
MenuItem18: TMenuItem;
MenuItem19: TMenuItem;
MenuItem2: TMenuItem;
MenuItem20: TMenuItem;
MenuItem21: TMenuItem;
MenuItem22: TMenuItem;
MenuItem23: TMenuItem;
MenuItem24: TMenuItem;
MenuItem25: TMenuItem;
MenuItem3: TMenuItem;
MenuItem4: TMenuItem;
MenuItem5: TMenuItem;
MenuItem6: TMenuItem;
MenuItem7: TMenuItem;
MenuItem8: TMenuItem;
MenuItem9: TMenuItem;
OpenDialog1: TOpenDialog;
PageSetupDialog1: TPageSetupDialog;
PrintDialog1: TPrintDialog;
ReplaceDialog1: TReplaceDialog;
SaveDialog1: TSaveDialog;
Separator1: TMenuItem;
Separator2: TMenuItem;
Separator3: TMenuItem;
Separator4: TMenuItem;
Separator5: TMenuItem;
Separator6: TMenuItem;
procedure MenuItem10Click(Sender: TObject);
procedure MenuItem11Click(Sender: TObject);
procedure MenuItem12Click(Sender: TObject);
procedure MenuItem13Click(Sender: TObject);
procedure MenuItem14Click(Sender: TObject);
procedure MenuItem15Click(Sender: TObject);
procedure MenuItem17Click(Sender: TObject);
procedure MenuItem18Click(Sender: TObject);
procedure MenuItem20Click(Sender: TObject);
procedure MenuItem22Click(Sender: TObject);
procedure MenuItem3Click(Sender: TObject);
procedure MenuItem4Click(Sender: TObject);
procedure MenuItem5Click(Sender: TObject);
procedure MenuItem6Click(Sender: TObject);
procedure MenuItem7Click(Sender: TObject);
procedure MenuItem8Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.MenuItem4Click(Sender: TObject);
begin
if SaveDialog1.Execute then
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
SaveDialog1.FileName:= Opendialog1.FileName;
end;
procedure TForm1.MenuItem5Click(Sender: TObject);
begin
SaveDialog1.execute;
end;
procedure TForm1.MenuItem6Click(Sender: TObject);
begin
PageSetupDialog1.execute;
end;
procedure TForm1.MenuItem7Click(Sender: TObject);
begin
PrintDialog1.execute;
end;
procedure TForm1.MenuItem8Click(Sender: TObject);
begin
Application.Terminate
end;
procedure TForm1.MenuItem3Click(Sender: TObject);
begin
if Opendialog1.Execute then
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
procedure TForm1.MenuItem18Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
if fileExists(OpenDialog1.Filename) then
ShowMessage(OpenDialog1.Filename);
end
else
ShowMessage('No file selected');
end;
procedure TForm1.MenuItem10Click(Sender: TObject);
begin
Memo1.Undo;
end;
procedure TForm1.MenuItem11Click(Sender: TObject);
begin
memo1.CutToClipboard;
end;
procedure TForm1.MenuItem12Click(Sender: TObject);
begin
memo1.CopyToClipboard;
end;
procedure TForm1.MenuItem13Click(Sender: TObject);
begin
memo1.PasteFromClipboard;
end;
procedure TForm1.MenuItem14Click(Sender: TObject);
begin
memo1.Clear;
end;
procedure TForm1.MenuItem15Click(Sender: TObject);
begin
memo1.SelectAll;
end;
procedure TForm1.MenuItem17Click(Sender: TObject);
begin
Memo1.WordWrap:=not(Memo1.WordWrap);
end;
procedure TForm1.MenuItem20Click(Sender: TObject);
begin
FindDialog1.execute;
end;
procedure TForm1.MenuItem22Click(Sender: TObject);
begin
ReplaceDialog1.execute;
end;
end.