📄 sourceeditunit.pas
字号:
unit SourceEditUnit;
interface
uses
Windows, Messages, SysUtils{, Variants}, Classes, Graphics, Controls, Forms,
Dialogs, mwHighlighter, DcjCppSyn, mwCustomEdit;
type
TSourceEditForm = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
procedure mwCustomEdit1StatusChange(Sender: TObject;
Changes: TmwStatusChanges);
procedure WMSize(var Message: TWMSize); message WM_SIZE;
public
{ Public declarations }
mwEdit: TmwCustomEdit;
DcjCppSyn: TDcjCppSyn;
procedure LoadFromFile(AFileName: string);
end;
var
SourceEditForm: TSourceEditForm;
implementation
uses MainFormUnit;
{$R *.dfm}
{ TSourceEditForm }
procedure TSourceEditForm.LoadFromFile(AFileName: string);
begin
mwEdit.Lines.LoadFromFile(AFileName);
Caption := AFileName;
end;
procedure TSourceEditForm.FormCreate(Sender: TObject);
begin
mwEdit := TmwCustomEdit.Create(Self);
mwEdit.Parent := Self;
mwEdit.Align := alClient;
// mwEdit.ReadOnly := True;
// mwEdit.Font.Name := 'Fixedsys';
mwEdit.Font.Size := 9;
mwEdit.Gutter.Width := 20;
mwEdit.RightEdge := 0;
mwEdit.MaxUndo := $FFFF;
mwEdit.OnStatusChange := mwCustomEdit1StatusChange;
DcjCppSyn := TDcjCppSyn.Create(Self);
DcjCppSyn.KeyAttri.Foreground := clBlue;
DcjCppSyn.NumberAttri.Foreground := clFuchsia;
DcjCppSyn.StringAttri.Foreground := clRed;
DcjCppSyn.CommentAttri.Foreground := clTeal;
DcjCppSyn.DirecAttri.Foreground := clPurple;
DcjCppSyn.CommentAttri.Style := [];
mwEdit.HighLighter := DcjCppSyn;
end;
procedure TSourceEditForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
mwEdit.Free;
DcjCppSyn.Free;
MainForm.ActivemwEdit := nil;
end;
procedure TSourceEditForm.mwCustomEdit1StatusChange(Sender: TObject;
Changes: TmwStatusChanges);
begin
MainForm.StatusBar1.Panels[0].Text := Format('Ln %d, Col %d', [mwEdit.CaretY, mwEdit.CaretX]);
end;
procedure TSourceEditForm.WMSize(var Message: TWMSize);
begin
if (Message.SizeType = SIZE_MAXIMIZED) or
(Message.SizeType = SIZE_MINIMIZED) or
(Message.SizeType = SIZE_RESTORED) then
MainForm.MainMenu_ToolBar.Invalidate;
inherited;
end;
procedure TSourceEditForm.FormActivate(Sender: TObject);
begin
MainForm.ActivemwEdit := mwEdit;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -