📄 childform.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 + -