📄 mainfrm.pas
字号:
end;
except
Result := '-1';
end;
end;
//}}}}}}}}}}}}}}}}}}}}}}}}}}}}}end}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}//
//-----------------------------end---------------------------------------//
//***********************************************************************//
//***********************窗体创建与关闭**********************************//
//------------------------begin------------------------------------------//
procedure TMainForm.FormCreate(Sender: TObject);
var
i: Integer;
begin
//“选择程序中”打开文件的代码
for i:=1 to ParamCount do
Filename:=Filename+ParamStr(I)+'';
if FileExists(Filename) then
OpenFile(Sender,Filename);
DragAcceptFiles(Handle, True);
N:=0;
end;
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;//关闭窗体
end;
procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:=not (CheckFileSave(Sender)=IDCANCEL);//检查文件保存与否
end;
//-----------------------------end---------------------------------------//
//***********************************************************************//
//***********************菜单功能代码************************************//
//------------------------begin------------------------------------------//
//新建文件
procedure TMainForm.M_NewFilesClick(Sender: TObject);
begin
if CheckFileSave(Sender)<>IDCANCEL then
begin
RichEdit1.Lines.Clear;
FileName:='';
UpdateCaption(Sender);
end;
end;
//打开文件
procedure TMainForm.M_OpenFilesClick(Sender: TObject);
begin
OpenFile(Sender,'');
end;
//保存文件
procedure TMainForm.M_SaveClick(Sender: TObject);
begin
SaveFile(Sender,0);
end;
//另保为
procedure TMainForm.M_SaveAsClick(Sender: TObject);
begin
SaveFile(Sender,1);
end;
//打印设置
procedure TMainForm.M_PrintPageClick(Sender: TObject);
begin
try
PrinterSetupDialog.Execute
except
Application.MessageBox(Pchar('无法找到默认的打印机'+NewLine+'请确认打印机已安装正确。'),Pchar(Application.Title),MB_ICONINFORMATION);
end;
end;
//打印
procedure TMainForm.M_PrintClick(Sender: TObject);
begin
try
RichEdit1.Print(FileName);
except
Application.MessageBox(Pchar('无法找到默认的打印机'+NewLine+'请确认打印机已安装正确。'),Pchar(Application.Title),MB_ICONINFORMATION);
end;
end;
//退出
procedure TMainForm.M_ExitClick(Sender: TObject);
begin
Close;
end;
//撤消
procedure TMainForm.M_ZClick(Sender: TObject);
begin
RichEdit1.Undo;
end;
//剪切
procedure TMainForm.M_CutClick(Sender: TObject);
begin
RichEdit1.CutToClipboard;
end;
//复制
procedure TMainForm.M_CopyClick(Sender: TObject);
begin
RichEdit1.CopyToClipboard;
end;
//粘贴
procedure TMainForm.M_PClick(Sender: TObject);
begin
RichEdit1.PasteFromClipboard;
end;
//删除
procedure TMainForm.M_DelClick(Sender: TObject);
begin
RichEdit1.ClearSelection;
end;
//全选
procedure TMainForm.M_CtrlAClick(Sender: TObject);
begin
RichEdit1.SelectAll;
end;
//查找窗体
procedure TMainForm.M_FindClick(Sender: TObject);
begin
with FindDialog do
begin
Position:=Point(Self.Left + Self.Width div 4,Self.Top + Self.Height div 4);
FindText:=RichEdit1.SelText;
Execute;
end;
end;
//查找窗体中的查找功能
procedure TMainForm.FindDialogFind(Sender: TObject);
var
SearchType:TSearchTypes;
begin
with FindDialog do
begin
if frMatchCase in Options then
SearchType:=SearchType+[stMatchCase];
if frWholeWord in Options then
SearchType:=SearchType+[stWholeWord];
PerformFind(Sender,FindText,SearchType);
end;
RichEdit1.SetFocus;
SendMessage(RichEdit1.Handle,EM_SCROLLCARET,0,0);
end;
//查找下一个
procedure TMainForm.M_FindNextClick(Sender: TObject);
begin
if Length(FindDialog.FindText)>0 then
FindDialogFind(Sender)
else
with FindDialog do
begin
Position:=Point(Self.Left + Self.Width div 4,Self.Top + Self.Height div 4);
FindText:=RichEdit1.SelText;
Execute;
end;
end;
//替换窗体
procedure TMainForm.M_ReplaceClick(Sender: TObject);
begin
with ReplaceDialog do
begin
Position:= Point(Self.Left + Self.Width div 4,Self.Top + Self.Height div 4);
if RichEdit1.SelLength>0 then
begin
FindText:=RichEdit1.SelText;
FindDialog.FindText:=RichEdit1.SelText;
end
else
if Length(FindDialog.FindText)>0 then
FindText:= FindDialog.FindText;
Execute;
end;
end;
//替换中的查找功能
procedure TMainForm.ReplaceDialogFind(Sender: TObject);
var
SearchType:TSearchTypes;
begin
with ReplaceDialog do
begin
if frMatchCase in Options then
SearchType:=SearchType+[stMatchCase];
if frWholeWord in Options then
SearchType:=SearchType+[stWholeWord];
PerformFind(Sender,FindText,SearchType);
end;
RichEdit1.SetFocus;
SendMessage(RichEdit1.Handle,EM_SCROLLCARET,0,0);
end;
//替换中的替换 替换全部功能
procedure TMainForm.ReplaceDialogReplace(Sender: TObject);
var
SearchType:TSearchTypes;
FoundAt, StartPos, ToEnd: Integer;
str:string;
label Start, Start1, Start2;
begin
with ReplaceDialog do
begin //1
if frReplace in Options then
begin//2
if frMatchCase in Options then
SearchType:=SearchType+[stMatchCase];
if frWholeWord in Options then
SearchType:=SearchType+[stWholeWord];
if RichEdit1.Seltext = ReplaceDialog.FindText then
begin
RichEdit1.SelText:= ReplaceDialog.ReplaceText;
Start1: StartPos:=RichEdit1.SelStart+RichEdit1.SelLength;
ToEnd:= RichEdit1.GetTextLen-StartPos;
FoundAt := RichEdit1.FindText(ReplaceDialog.FindText,StartPos,ToEnd,SearchType);
if FoundAt<>-1 then
begin
RichEdit1.SelStart:=FoundAt;
RichEdit1.SelLength:=Length(ReplaceDialog.FindText);
if RichEdit1.Seltext='' then
begin
RichEdit1.Selstart:=RichEdit1.Selstart+2;
goto Start1;
end;
SendMessage(RichEdit1.Handle, EM_SCROLLCARET, 0, 0);
end
else
begin
Str:= '找不到 '''''+ReplaceDialog.FindText+'''''';
Application.MessageBox(PChar(Str),'记事本',MB_ICONINFORMATION);
end;
end
else
begin
Start2: StartPos:=RichEdit1.SelStart+RichEdit1.SelLength;
ToEnd:= RichEdit1.GetTextLen-StartPos;
FoundAt := RichEdit1.FindText(ReplaceDialog.FindText,StartPos,ToEnd,SearchType);
if FoundAt<>-1 then
begin
RichEdit1.SelStart:=FoundAt;
if RichEdit1.Seltext='' then
RichEdit1.SelLength:=Length(ReplaceDialog.FindText);
begin
RichEdit1.Selstart:=RichEdit1.Selstart+2;
goto Start2;
end;
SendMessage(RichEdit1.Handle, EM_SCROLLCARET, 0, 0);
end
else
begin
Str:= '找不到 '''''+ReplaceDialog.FindText+'''''';
Application.MessageBox(PChar(Str),'记事本',MB_ICONINFORMATION);
end;
end;
end;
if frReplaceAll in Options then
begin
if frMatchCase in Options then
SearchType:=SearchType+[stMatchCase];
if frWholeWord in Options then
SearchType:=SearchType+[stWholeWord];
if RichEdit1.Seltext = ReplaceDialog.FindText then
RichEdit1.SelText:= ReplaceDialog.ReplaceText;
FindTextOld:='';
PerformFind(Sender,FindText,SearchType);
while PerformFind(Sender,FindText,SearchType) do
begin
RichEdit1.SelText:= ReplaceDialog.ReplaceText;
end;
end;
end;//1
RichEdit1.SetFocus;
SendMessage(RichEdit1.Handle,EM_SCROLLCARET,0,0);
end;
//插入时间\日期
procedure TMainForm.M_DateTimeClick(Sender: TObject);
begin
RichEdit1.SelText:=DatetimeToStr(now());
end;
//字体
procedure TMainForm.M_FontClick(Sender: TObject);
begin
if FontDialog1.Execute then
begin
RichEdit1.Font:= FontDialog1.Font;
end;
end;
//自动换行
procedure TMainForm.M_AutoLinesClick(Sender: TObject);
var
Pos:Integer;
begin
with RichEdit1,M_AutoLines do
begin
Pos:=SelStart;
Checked:=Not Checked;
WordWrap:=Checked;
if WordWrap then
ScrollBars:=ssVertical
else
ScrollBars:=ssBoth;
SelStart:=Pos;
end;
end;
//设置
procedure TMainForm.M_SetFrmClick(Sender: TObject);
begin
SetForm:= TSetForm.Create(nil);
SetForm.ShowModal;
end;
//替换平台
procedure TMainForm.M_ChageFrmClick(Sender: TObject);
begin
//
end;
//帮助
procedure TMainForm.M_HelpClick(Sender: TObject);
var
windir: Array[0..255] of char;
tepstr: string;
begin
GetSystemDirectory ( windir,SizeOf(windir));
tepstr:= windir;
Delete(tepstr, Length(tepstr)-7, 8);
ShellExecute(Handle, 'open', PChar(tepstr+'\Help\notepad.chm'), nil, nil, SW_SHOW);
end;
//关于
procedure TMainForm.M_AboutClick(Sender: TObject);
begin
ShellAbout(self.Handle,
pChar('文本替换软件 '+GetFileVersion(ExtractFilePath(Application.Exename)+'\TextChange.exe')),
pChar('作者:陈 宏 E-Mail:hong9906@163.com'), HICON(nil));
end;
//-----------------------------end---------------------------------------//
//***********************************************************************//
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -