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

📄 childform.pas

📁 用Delphi编的一个简单的记事本,这里面实现了一些简单的功能~!
💻 PAS
字号:
unit childform;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, ComCtrls, ImgList, StdActns, ActnList;

type
  TFormChild = class(TForm)
    MainMenu1: TMainMenu;
    Edit1: TMenuItem;
    Replace1: TMenuItem;
    N2: TMenuItem;
    Paste1: TMenuItem;
    Copy1: TMenuItem;
    Cut1: TMenuItem;
    N3: TMenuItem;
    Undo1: TMenuItem;
    Richedit1: TRichEdit;
    ImageList1: TImageList;
    FindDialog1: TFindDialog;
    ReplaceDialog1: TReplaceDialog;
    ColorDialog1: TColorDialog;
    FontDialog1: TFontDialog;
    SaveDialog1: TSaveDialog;
    ActionList1: TActionList;
    SearchFind1: TSearchFind;
    SearchFindNext1: TSearchFindNext;
    SearchReplace1: TSearchReplace;
    SearchFindFirst1: TSearchFindFirst;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Undo1Click(Sender: TObject);
    procedure Cut1Click(Sender: TObject);
    procedure Copy1Click(Sender: TObject);
    procedure Paste1Click(Sender: TObject);
    procedure Replace1Click(Sender: TObject);
    procedure Richedit1Change(Sender: TObject);
    procedure Richedit1Exit(Sender: TObject);
    procedure ReplaceDialog1Replace(Sender: TObject);
    procedure FindDialog1Find(Sender: TObject);
   
  //  procedure SetModified(Value: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormChild: TFormChild;
   fname:String;
implementation

uses note;

{$R *.dfm}

procedure TFormChild.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   action:=cafree;
   if Richedit1.Modified then
   begin
    case MessageDlg('是否保存文件?',
    mtConfirmation, [mbYes, mbNo], 0) of
    idyes:MainForm.tb_saveClick(Sender);
    idno : ;
    else ;
    end;

   end
   else
   begin

   end;

end;

procedure TFormChild.Undo1Click(Sender: TObject);
begin
  richedit1.Undo;
end;

procedure TFormChild.Cut1Click(Sender: TObject);
begin
  richedit1.CutToClipboard;
end;

procedure TFormChild.Copy1Click(Sender: TObject);
begin
  richedit1.CopyToClipboard;
end;

procedure TFormChild.Paste1Click(Sender: TObject);
begin
  richedit1.PasteFromClipboard;
end;

procedure TFormChild.Replace1Click(Sender: TObject);
begin
with ReplaceDialog1 do
  begin
    Position:=Point(RichEdit1.Left+RichEdit1.Width div 2,RichEdit1.Top);
    if RichEdit1.SelLength>0 then
      FindText:=RichEdit1.SelText
    else
      if Length(FindDialog1.FindText)>0 then
        FindText:=FindDialog1.FindText;
    Execute;
  end;
end;

procedure TFormChild.Richedit1Change(Sender: TObject);
begin
   // TFormChild(Richedit1.Modified);
end;

procedure TFormChild.Richedit1Exit(Sender: TObject);
var  //退出
  curChild:Tformchild;
begin
   if {(TFormChild(ActiveMDIchild).}Richedit1.Modified then
     if messageDlg('是否保存已修改的内容?',mtConfirmation,[mbYes,mbNo],0)=mrYes then

begin
  curChild:=self.ActiveMDIchild as Tformchild;
  if pos('文档',fname)<>0 then
  begin
    if savedialog1.Execute then
    begin
      fname:=savedialog1.FileName;

      curchild.richedit1.Lines.savetofile(fname);
      curchild.Caption:=fname;

    end;
  end
  else
  begin
    fname:=self.ActiveMDIChild.Caption;

    curchild.richedit1.Lines.savetofile(fname);
    curchild.Caption:=fname;
  end;

end;
end;
procedure TFormChild.ReplaceDialog1Replace(Sender: TObject);
var
  SelPos: Integer;
begin
  with TReplaceDialog(Sender) do
  begin
  { Perform a global case-sensitive search for FindText in Memo1 }
    SelPos := Pos(FindText, RichEdit1.Lines.Text);
    if SelPos > 0 then
    begin
      RichEdit1.SelStart := SelPos - 1;
      RichEdit1.SelLength := Length(FindText);
      { Replace selected text with ReplaceText }
      RichEdit1.SelText := ReplaceText;
    end
    else MessageDlg(Concat('Could not find "', FindText, '" in Memo1.'), mtError, [mbOk], 0);

  end;

end;

procedure TFormChild.FindDialog1Find(Sender: TObject);
var
  FoundAt: LongInt;
  StartPos, ToEnd: Integer;
begin
  with RichEdit1 do
  begin
    { begin the search after the current selection if there is one }
    { otherwise, begin at the start of the text }
    if SelLength <> 0 then

      StartPos := SelStart + SelLength
    else

      StartPos := 0;

    { ToEnd is the length from StartPos to the end of the text in the rich edit control }

    ToEnd := Length(Text) - StartPos;

    FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]);
    if FoundAt <> -1 then
    begin
      SetFocus;
      SelStart := FoundAt;
      SelLength := Length(FindDialog1.FindText);
    end;
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -