📄 editfm.pas
字号:
unit EditFM;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, ComCtrls,AboutFM, ToolWin, ImgList;
type
TEditForm = class(TForm)
MainMenu1: TMainMenu;
MIFile: TMenuItem;
MIEdit: TMenuItem;
MICharacter: TMenuItem;
MIHelp: TMenuItem;
MINew: TMenuItem;
MIOpen: TMenuItem;
MISave: TMenuItem;
MISaveAs: TMenuItem;
U1: TMenuItem;
N3: TMenuItem;
T1: TMenuItem;
C2: TMenuItem;
P2: TMenuItem;
D1: TMenuItem;
N4: TMenuItem;
W1: TMenuItem;
F2: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
Editor: TRichEdit;
PopupMenu1: TPopupMenu;
U2: TMenuItem;
R3: TMenuItem;
N9: TMenuItem;
T2: TMenuItem;
C4: TMenuItem;
P3: TMenuItem;
D2: TMenuItem;
A2: TMenuItem;
N10: TMenuItem;
F3: TMenuItem;
L3: TMenuItem;
DgOpen: TOpenDialog;
DgFont: TFontDialog;
N2: TMenuItem;
MIExit: TMenuItem;
DgSave: TSaveDialog;
StatusBar: TStatusBar;
procedure MIExitClick(Sender: TObject);
procedure MINewClick(Sender: TObject);
procedure MISaveAsClick(Sender: TObject);
procedure MISaveClick(Sender: TObject);
procedure F2Click(Sender: TObject);
procedure MIOpenClick(Sender: TObject);
procedure T1Click(Sender: TObject);
procedure C2Click(Sender: TObject);
procedure P2Click(Sender: TObject);
procedure D1Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure U1Click(Sender: TObject);
procedure W1Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure EditorChange(Sender: TObject);
private
{ Private declarations }
PathName: string;
HasUndo:Boolean;
public
{ Public declarations }
procedure CheckTextModified;
end;
var
EditForm: TEditForm;
const
DefaultFileName = '无标题';
implementation
{$R *.dfm}
procedure TEditForm.CheckTextModified;
begin
if Editor.Modified then //修改过
begin
case Application.MessageBox('文件没有保存!要保存吗?',
'提示',MB_YESNO+MB_ICONQUESTION) of
IDYES: //保存文件
MISaveClick(Self); //保存文件
end;
end;
end;
procedure TEditForm.MIExitClick(Sender: TObject);
begin
Close;
end;
procedure TEditForm.MINewClick(Sender: TObject);
begin
CheckTextModified; //检测是否做了修改
Editor.Lines.Clear; //清除所有文本
Editor.Modified:=False; //把Modified属性设为False
PathName:=DefaultFileName;
Self.Caption:=DefaultFileName; //把窗口标题设为'无标题'
end;
procedure TEditForm.MISaveAsClick(Sender: TObject);
begin
DgSave.FileName := DefaultFileName;
if DgSave.Execute then
begin
PathName := DgSave.FileName; //获取路径名
if DgSave.FilterIndex=1 then //txt文件
begin
Editor.PlainText:=True;
PathName:=PathName+'.txt';
end;
if DgSave.FilterIndex=2 then //rtf文件
begin
Editor.PlainText:=False;
PathName:=PathName+'.rtf';
end;
if DgSave.FilterIndex=3 then //所有文件
begin
Editor.PlainText:=False;
end;
Editor.Lines.SaveToFile(PathName); //保存文件
Editor.Modified := False; //设置Editor为未改变
Caption := ExtractFileName(PathName); //取出文件名,设为窗口标题
StatusBar.Panels[1].Text:='';
end;
end;
procedure TEditForm.MISaveClick(Sender: TObject);
begin
if PathName = DefaultFileName then //第一次保存
MISaveAsClick(Sender)
else
begin
Editor.Lines.SaveToFile(PathName); //已经保存过
Editor.Modified := False;
StatusBar.Panels[1].Text:='';
end;
end;
procedure TEditForm.F2Click(Sender: TObject);
begin
DgFont.Font.Assign(Editor.Font); //DgFont的初始字体设成Editor的字体
if DgFont.Execute then
Editor.SelAttributes.Assign(DgFont.Font);
end;
procedure TEditForm.MIOpenClick(Sender: TObject);
begin
DgOpen.Execute;
end;
procedure TEditForm.T1Click(Sender: TObject);
begin
Editor.CutToClipboard;
end;
procedure TEditForm.C2Click(Sender: TObject);
begin
Editor.CopyToClipboard;
end;
procedure TEditForm.P2Click(Sender: TObject);
begin
Editor.PasteFromClipboard;
end;
procedure TEditForm.D1Click(Sender: TObject);
begin
Editor.ClearSelection;
end;
procedure TEditForm.N4Click(Sender: TObject);
begin
Editor.SelectAll;
end;
procedure TEditForm.U1Click(Sender: TObject);
begin
if not HasUndo then
begin
Editor.Undo;
HasUndo:=True;
end;
end;
procedure TEditForm.W1Click(Sender: TObject);
begin
with Editor do
begin
WordWrap := not WordWrap; //让WordWrap取反
if WordWrap then //自动换行
ScrollBars := ssVertical //Editor只有竖直滚动条
else
ScrollBars := ssBoth;
W1.Checked := WordWrap; //设置自动换行菜单项左边的对勾
end;
end;
procedure TEditForm.N8Click(Sender: TObject);
begin
showmessage('本文本编辑器用Delphi7.0制作,希望大家能够喜欢!有什么意见可以尽量提出!谢谢!');
end;
procedure TEditForm.FormCreate(Sender: TObject);
begin
PathName := DefaultFileName;
HasUndo:=False;
end;
procedure TEditForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CheckTextModified;
end;
procedure TEditForm.EditorChange(Sender: TObject);
begin
if Editor.Modified then
StatusBar.Panels[1].Text:='已修改'
else
StatusBar.Panels[1].Text:='';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -