📄 unit1.~pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RtfExport, Menus, MemoComponentUnit, SourceEditUnit, ExtCtrls,
ComCtrls, FindDlg;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
FileF1: TMenuItem;
Edit1: TMenuItem;
Open1: TMenuItem;
N1: TMenuItem;
exit1: TMenuItem;
Find1: TMenuItem;
Refind1: TMenuItem;
Replace1: TMenuItem;
Replace2: TMenuItem;
ExporttoRtf1: TMenuItem;
N2: TMenuItem;
StatusBar1: TStatusBar;
Panel1: TPanel;
ScEdit: TSourceEdit;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure Find1Click(Sender: TObject);
procedure Refind1Click(Sender: TObject);
procedure Replace1Click(Sender: TObject);
procedure Replace2Click(Sender: TObject);
procedure Open1Click(Sender: TObject);
procedure ExporttoRtf1Click(Sender: TObject);
procedure exit1Click(Sender: TObject);
private
FindText, ReplaceText: string;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
With StatusBar1 do
begin
Panels[0].Text := 'ColumnNo: ' + IntToStr(ScEdit.CurrentCol);
Panels[1].Text := 'LineNo: ' + IntToStr(ScEdit.CurrentRow);
end;
end;
procedure TForm1.Find1Click(Sender: TObject);
var
ADlg: TFindFrm;
begin
try
ADlg := TFindFrm.Create(Application);
ADlg.Caption := 'Find';
if FindText <> '' then ADlg.Edit1.Text := FindText;
if ADlg.Showmodal = Id_Ok then
begin
FindText := ADlg.Edit1.Text;
if FindText = '' then Exit;
ScEdit.SearchOption := [];
//Case Sensitive
if ADlg.CheckBox1.Checked then
ScEdit.SearchOption := ScEdit.SearchOption + [soCaseSensitive];
//Search Direction
if ADlg.CheckBox4.Checked then
ScEdit.SearchOption := ScEdit.SearchOption + [soUp]
else
ScEdit.SearchOption := ScEdit.SearchOption + [soDown];
//Search scope: All Text or Selected Text
if ADlg.CheckBox8.Checked then
ScEdit.SearchOption := ScEdit.SearchOption + [soSearchSelText]
else
ScEdit.SearchOption := ScEdit.SearchOption + [soSearchAllText];
//Search from cursor or from headLine
if ADlg.CheckBox11.Checked then
ScEdit.SearchOption := ScEdit.SearchOption + [soWholeRange]
else
ScEdit.SearchOption := ScEdit.SearchOption + [soFromCursor];
ScEdit.FindText(FindText);
end;
finally
ADlg.Free;
end;
end;
procedure TForm1.Refind1Click(Sender: TObject);
begin
if FindText <> '' then
if Not ScEdit.FindText(FindText) then
ScEdit.SelStart := ScEdit.SelStart + ScEdit.SelLength;
end;
procedure TForm1.Replace1Click(Sender: TObject);
var
ADlg : TFindFrm;
begin
try
ADlg := TFindFrm.Create(Application);
ADlg.Caption := 'Find&Replace';
if FindText <> '' then ADlg.Edit1.Text := FindText;
ADlg.Panel3.Visible := True;
if ADlg.Showmodal = Id_Ok then
begin
FindText := ADlg.Edit1.Text;
ReplaceText := ADlg.Edit2.Text;
if FindText = '' then Exit;
ScEdit.SearchOption := [];
//Case Sensitive
if ADlg.CheckBox1.Checked then
ScEdit.SearchOption := ScEdit.SearchOption + [soCaseSensitive];
//Search Direction
if ADlg.CheckBox4.Checked then
ScEdit.SearchOption := ScEdit.SearchOption + [soUp]
else
ScEdit.SearchOption := ScEdit.SearchOption + [soDown];
//Search Option: Search All Text or Selected Text
if ADlg.CheckBox8.Checked then
ScEdit.SearchOption := ScEdit.SearchOption + [soSearchSelText]
else
ScEdit.SearchOption := ScEdit.SearchOption + [soSearchAllText];
//Search Option: Search From cursor or HeadLine
if ADlg.CheckBox11.Checked then
ScEdit.SearchOption := ScEdit.SearchOption + [soWholeRange]
else
ScEdit.SearchOption := ScEdit.SearchOption + [soFromCursor];
//----------
ScEdit.ReplaceText(FindText, ReplaceText, ADlg.CheckBox6.Checked);
end;
finally
ADlg.Free;
end;
end;
procedure TForm1.Replace2Click(Sender: TObject);
begin
if FindText <> '' then
ScEdit.ReplaceText(FindText, ReplaceText, False);
end;
procedure TForm1.Open1Click(Sender: TObject);
begin
With TOpenDialog.Create(Application) do
begin
DefaultExt := '*.sql';
Filter := 'Sql File(*.sql)|*.sql';
Title := 'Open';
if Execute then
begin
ScEdit.Lines.LoadFromFile(FileName);
end;
end;
end;
procedure TForm1.ExporttoRtf1Click(Sender: TObject);
var
I : Integer;
W : TTxt2Rtf;
begin
With TSaveDialog.Create(Application) do
begin
Filter := 'RTF File(*.rtf)|*.rtf';
DefaultExt := '*.rtf';
Title := 'Export to Rtf';
if Execute then
begin
try
W := TTxt2Rtf.Create;
W.KeyWords.Assign(ScEdit.SyntaxColoring.WordLists.Items[0].Words);
W.SaveTextToRtfFile(ScEdit.Text, FileName);
finally
W.Free;
end;
end;
Free;
end;
end;
procedure TForm1.exit1Click(Sender: TObject);
begin
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -