📄 editfm.pas
字号:
end;
//*********************************************************
// 重做
//*********************************************************
procedure Teditform.R1Click(Sender: TObject);
begin
if hasundo then
begin
editor.Undo; //???
hasundo:=false;
end;
end;
//*********************************************************
// 查找
//*********************************************************
procedure Teditform.F1Click(Sender: TObject);
begin
dgfind.Execute;
end;
//*********************************************************
// 查找 下一个 onfind 事件
//*********************************************************
procedure Teditform.DgFindFind(Sender: TObject);
var
fpundpos,startpos,findlen:integer;
st:tsearchtypes;
begin
if not (frdown in dgfind.Options)then
begin
dgfind.CloseDialog;
showmessage('对不起,目前只能处理向下查找');
exit;
end;
startpos:=editor.SelStart+editor.sellength;
findlen:=length(editor.Text)-startpos;
st:=[];
if frmatchcase in dgfind.options then
st:=st+[stmatchcase];
if frwholeword in dgfind.Options then
st:=st+[stwholeword];
fpundpos:=editor.findtext(dgfind.findtext,startpos,findlen,st);
dgfind.closedialog;
if fpundpos <> -1 then
begin
editor.SelStart :=fpundpos;
editor.SelLength:=length(dgfind.FindText);
end
else
showmessage('未找到'+dgfind.FindText);
end;
//*********************************************************
// 替换
//*********************************************************
procedure Teditform.L1Click(Sender: TObject);
begin
dgreplace.Execute;
end;
//*********************************************************
// DgReplace
//*********************************************************
procedure Teditform.DgReplaceReplace(Sender: TObject);
var
foundpos,startpos,findlen:integer;
st:tsearchtypes;
begin//tsearchtypes;
if not (frdown in dgreplace.Options)then
begin
dgreplace.CloseDialog;
showmessage('对不起,目前只能处理向下替换');
exit;
end;
startpos:=editor.selstart+editor.sellength;
findlen:=length(editor.Text)-startpos;
st:=[];
if frmatchcase in dgreplace.Options then
st:=st+[stmatchcase];
if frwholeword in dgreplace.Options then
st:=st+[stwholeword];
foundpos:=editor.findtext(dgreplace.FindText,startpos,findlen,st);
dgreplace.CloseDialog;
if foundpos <> -1 then
begin
while foundpos <> -1 do
begin
editor.SelStart:=foundpos;
editor.SelLength:=length(dgreplace.FindText);
editor.SelText:=dgreplace.ReplaceText;
if not (frreplaceall in dgreplace.Options)then
break;
startpos:=editor.SelStart+length(dgreplace.ReplaceText);
findlen:=length(editor.Text)-startpos;
foundpos:=editor.FindText(dgreplace.FindText,startpos,findlen,st);
end;
showmessage('替换完毕!');
end
else
showmessage('未找到'+dgreplace.FindText);
end;
//*********************************************************
// 字体
//*********************************************************
procedure Teditform.F2Click(Sender: TObject);
begin
dgfont.font.Assign(editor.font);
if dgfont.Execute then
editor.SelAttributes.Assign(dgfont.Font);
end;
//*********************************************************
// 自动换行
//*********************************************************
procedure Teditform.W1Click(Sender: TObject);
begin
with editor do
begin
wordwrap:=not wordwrap;//????
if wordwrap then
scrollbars:=ssvertical
else
scrollbars:=ssboth;
w1.Checked:=wordwrap;
end;
end;
//*********************************************************
// 居左
//*********************************************************
procedure Teditform.mileftClick(Sender: TObject);
begin
mileft.checked:=true;
micenter.checked:=false;
miright.checked:=false;
editor.Paragraph.Alignment:=taleftjustify; //??
end;
//*********************************************************
// 居中
//*********************************************************
procedure Teditform.micenterClick(Sender: TObject);
begin
mileft.Checked:=false;
micenter.checked:=true;
miright.Checked:=false;
editor.Paragraph.Alignment:=tacenter;
end;
//*********************************************************
// 居右
//*********************************************************
procedure Teditform.mirightClick(Sender: TObject);
begin
mileft.Checked:=false;
micenter.Checked:=false;
miright.Checked:=true;
editor.Paragraph.Alignment:=tarightjustify;
end;
//*********************************************************
// 关于
//*********************************************************
procedure Teditform.N7Click(Sender: TObject);
begin
form2.ShowModal;
end;
//*********************************************************
// form oncreate
//*********************************************************
procedure Teditform.FormCreate(Sender: TObject);
begin
pathname:=defaultfilename;
hasundo:=false; //??
end;
//*********************************************************
// 提示用户保存工作
//*********************************************************
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.FormClose(Sender: TObject; var Action: TCloseAction);
begin
checktextmodified;
end;
//*********************************************************
// 剪切
//*********************************************************
procedure Teditform.ToolButton1Click(Sender: TObject);
begin
editor.CutToClipboard;
end;
//*********************************************************
// 复制
//*********************************************************
procedure Teditform.ToolButton2Click(Sender: TObject);
begin
editor.copyToClipboard;
end;
//*********************************************************
// 粘贴
//*********************************************************
procedure Teditform.ToolButton3Click(Sender: TObject);
begin
editor.PasteFromClipboard;
end;
//*********************************************************
// 撤消
//*********************************************************
procedure Teditform.ToolButton4Click(Sender: TObject);
begin
if not hasundo then
begin
editor.Undo;
hasundo:=true;
end;
end;
//*********************************************************
// 重做
//*********************************************************
procedure Teditform.ToolButton5Click(Sender: TObject);
begin
if hasundo then
begin
editor.Undo;
hasundo:=false;
end;
end;
//*********************************************************
// 字体
//*********************************************************
procedure Teditform.ToolButton6Click(Sender: TObject);
begin
dgfont.font.Assign(editor.font);
if dgfont.Execute then
editor.SelAttributes.Assign(dgfont.Font); //??
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 + -