⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfrm.pas

📁 记事本
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    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 + -