editu2.pas
来自「本人买的<<VC++项目开发实例>>源代码配套光盘.」· PAS 代码 · 共 1,411 行 · 第 1/4 页
PAS
1,411 行
begin
mwEdit.OverwriteCaret := TCaretType(cbxOverwriteCaret.ItemIndex);
mwEdit.SetFocus;
end;
procedure TForm1.cbInsertModeClick(Sender: TObject);
begin
mwEdit.InsertMode := cbInsertMode.Checked;
mwEdit.SetFocus;
end;
procedure TForm1.FormShow(Sender: TObject);
const
first: boolean = true;
begin
if first then begin
first := false;
cbxHighlighterSelect.ItemIndex := 0;
cbxHighlighterSelectChange(Sender);
LoadSettings;
end;
end;
procedure TForm1.FormResize(Sender: TObject);
begin
inpGutterWidth.MaxValue := mwEdit.Width + 1;
if inpGutterWidth.Value > inpGutterWidth.MaxValue then
inpGutterWidth.Value := inpGutterWidth.MaxValue;
end;
procedure TForm1.cbxGutterColorChange(Sender: TObject);
begin
mwEdit.Gutter.Color := IndexToColor(cbxGutterColor.ItemIndex); //gp 1999-06-10
mwEdit.SetFocus;
end;
procedure TForm1.inpGutterWidthChange(Sender: TObject);
begin
try mwEdit.Gutter.Width := inpGutterWidth.Value; //gp 1999-06-10
except end;
RecalcLeftMargin;
mwEdit.SetFocus;
end;
procedure TForm1.cbEnableKeysClick(Sender: TObject);
begin
mwEdit.BookMarkOptions.EnableKeys := cbEnableKeys.Checked;
mwEdit.SetFocus;
end;
procedure TForm1.cbGlyphsVisibleClick(Sender: TObject);
begin
mwEdit.BookMarkOptions.GlyphsVisible := cbGlyphsVisible.Checked;
mwEdit.SetFocus;
end;
procedure TForm1.inpLeftMarginChange(Sender: TObject);
begin
try mwEdit.BookMarkOptions.LeftMargin := inpLeftMargin.Value;
except end;
mwEdit.SetFocus;
end;
procedure TForm1.inpMaxUndoChange(Sender: TObject);
begin
try mwEdit.MaxUndo := inpMaxUndo.Value;
except end;
mwEdit.SetFocus;
end;
procedure TForm1.inpLineTextKeyPress(Sender: TObject; var Key: Char);
begin
mwEdit.LineText := inpLineText.Text;
mwEdit.SetFocus;
end;
procedure TForm1.mwEditClick(Sender: TObject);
begin
if cbEnableEventLog.Checked and cbMouse.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnClick');
LoadInfo;
end;
procedure TForm1.LoadInfo;
begin
inpLineText.Text := mwEdit.LineText;
inpLeftChar.Value := mwEdit.LeftChar;
inpTopLine.Value := mwEdit.TopLine;
inpCaretX.Value := mwEdit.CaretX;
inpCaretY.Value := mwEdit.CaretY;
outLineCount.Text := IntToStr(mwEdit.LineCount);
ResetMarkButtons;
end;
procedure TForm1.inpLeftCharChange(Sender: TObject);
begin
try mwEdit.LeftChar := inpLeftChar.Value;
except end;
mwEdit.SetFocus;
end;
procedure TForm1.inpTopLineChange(Sender: TObject);
begin
try mwEdit.TopLine := inpTopLine.Value;
except end;
mwEdit.SetFocus;
end;
procedure TForm1.inpCaretXChange(Sender: TObject);
begin
try mwEdit.CaretX := inpCaretX.Value;
except end;
mwEdit.SetFocus;
end;
procedure TForm1.inpCaretYChange(Sender: TObject);
begin
try mwEdit.CaretY := inpCaretY.Value;
except end;
mwEdit.SetFocus;
end;
procedure TForm1.cbEnableEventLogClick(Sender: TObject);
begin
mwEdit.SetFocus;
end;
procedure TForm1.mwEditDblClick(Sender: TObject);
begin
if cbEnableEventLog.Checked and cbMouse.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnDblClick');
end;
procedure TForm1.mwEditDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
if cbEnableEventLog.Checked and cbDrag.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnDragDrop');
end;
procedure TForm1.mwEditDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
if cbEnableEventLog.Checked and cbDrag.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnDragOver');
end;
procedure TForm1.mwEditEndDrag(Sender, Target: TObject; X, Y: Integer);
begin
if cbEnableEventLog.Checked and cbDrag.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnEndDrag');
end;
procedure TForm1.mwEditExit(Sender: TObject);
begin
if cbEnableEventLog.Checked and cbOther.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnExit');
end;
procedure TForm1.mwEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if cbEnableEventLog.Checked and cbKeyboard.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnKeyDown');
end;
procedure TForm1.mwEditKeyPress(Sender: TObject; var Key: Char);
begin
if cbEnableEventLog.Checked and cbKeyboard.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnKeyPress');
end;
procedure TForm1.mwEditPaint(Sender: TObject; ACanvas: TCanvas);
begin
if cbEnableEventLog.Checked and cbOther.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnPaint');
end;
procedure TForm1.mwEditStartDrag(Sender: TObject;
var DragObject: TDragObject);
begin
if cbEnableEventLog.Checked and cbDrag.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnStartDrag');
end;
{begin} //Carlos 1998-27-12
procedure TForm1.cbxAttrSelectChange(Sender: TObject);
var
Attr: TmwHighLightAttributes;
begin
Attr := TmwHighLightAttributes.Create('');
try //pv 1999-07-06
if assigned(mwEdit.Highlighter) then
Attr.Assign(mwEdit.Highlighter.Attribute[cbxAttrSelect.ItemIndex]);
cbxAttrForeground.ItemIndex := ColorToIndex(Attr.Foreground);
cbxAttrBackground.ItemIndex := ColorToIndex(Attr.Background);
cbStyleBold.Checked := (fsBold in Attr.Style);
cbStyleItalic.Checked := (fsItalic in Attr.Style);
cbStyleUnderLine.Checked := (fsUnderline in Attr.Style);
cbStyleStrikeOut.Checked := (fsStrikeOut in Attr.Style);
finally //pv 1999-07-06
Attr.Free;
end;
end;
procedure TForm1.cbxAttrBackgroundChange(Sender: TObject);
var
Attr: TmwHighLightAttributes;
AttrStyle: TFontStyles;
begin
Attr := TmwHighLightAttributes.Create(cbxAttrSelect.Items[cbxAttrSelect.ItemIndex]);
try //mh 1999-09-12
AttrStyle := [];
Attr.Foreground := IndexToColor(cbxAttrForeground.ItemIndex);
Attr.Background := IndexToColor(cbxAttrBackground.ItemIndex);
if cbStyleBold.Checked then
Include(AttrStyle, fsBold);
if cbStyleItalic.Checked then
Include(AttrStyle, fsItalic);
if cbStyleUnderLine.Checked then
Include(AttrStyle, fsUnderline);
if cbStyleStrikeOut.Checked then
Include(AttrStyle, fsStrikeOut);
Attr.Style := AttrStyle;
if Assigned(mwEdit.HighLighter) then //mh 1999-09-12
mwEdit.HighLighter.Attribute[cbxAttrSelect.ItemIndex].Assign(Attr);
mwEdit.Invalidate;
finally //mh 1999-09-12
Attr.Free;
end;
end;
procedure TForm1.cbCommentsCClick(Sender: TObject);
var
CmntSet: CommentStyles;
begin
CmntSet := [];
if cbCommentsAnsi.Checked then Include(CmntSet, csAnsiStyle);
if cbCommentsPas.Checked then Include(CmntSet, csPasStyle);
if cbCommentsC.Checked then Include(CmntSet, csCStyle);
if cbCommentsAsm.Checked then Include(CmntSet, csAsmStyle);
if cbCommentsBas.Checked then Include(CmntSet, csBasStyle);
(mwEdit.HighLighter as TmwGeneralSyn).Comments := CmntSet;
mwEdit.Invalidate;
end;
procedure TForm1.btnKeywordsClick(Sender: TObject);
begin
form2.lbKeywords.Items.Assign((mwEdit.HighLighter as TmwGeneralSyn).Keywords);
if Form2.ShowModal = mrOk then
(mwEdit.HighLighter as TmwGeneralSyn).Keywords := Form2.lbKeywords.Items;
end;
{end} //Carlos 1998-27-12
procedure TForm1.mwEditProcessCommand(Sender: TObject; //nmi 1999-10-17
var Command: TmwEditorCommand; var AChar: Char; Data: Pointer);
begin
if cbEnableEventLog.Checked and cbKeyboard.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnProcessCommand');
end;
procedure TForm1.mwEditProcessUserCommand(Sender: TObject; //nmi 1999-10-17
var Command: TmwEditorCommand; var AChar: Char; Data: Pointer);
begin
if cbEnableEventLog.Checked and cbKeyboard.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnProcessUserCommand');
end;
procedure TForm1.btnSaveToRegClick(Sender: TObject);
begin
if mwEdit.Highlighter.SaveToRegistry(HKEY_CURRENT_USER,'\Software\mwEdit team\Highlighters\'+cbxHighlighterSelect.Text)
then StatusBar.SimpleText := 'Success'
else StatusBar.SimpleText := 'Failure';
end;
procedure TForm1.btnLoadFromRegClick(Sender: TObject);
begin
if mwEdit.Highlighter.LoadFromRegistry(HKEY_CURRENT_USER,'\Software\mwEdit team\Highlighters\'+cbxHighlighterSelect.Text) then begin
StatusBar.SimpleText := 'Success';
cbxAttrSelectChange(Self);
end
else StatusBar.SimpleText := 'Failure';
end;
procedure TForm1.UpdateKeystrokesList;
var
x: integer;
begin
KeyCmdList.Items.BeginUpdate;
try
KeyCmdList.Items.Clear;
for x := 0 to mwEdit.Keystrokes.Count-1 do
begin
with KeyCmdList.Items.Add do
begin
Caption := EditorCommandToCodeString(mwEdit.Keystrokes[x].Command);
if mwEdit.Keystrokes[x].ShortCut = 0 then
SubItems.Add('<none>')
else
SubItems.Add(Menus.ShortCutToText(mwEdit.Keystrokes[x].ShortCut));
end;
end;
finally
KeyCmdList.Items.EndUpdate;
end;
end;
procedure TForm1.btnEditClick(Sender: TObject);
var
Dlg: TmwKeystrokesEditorForm;
begin
Application.CreateForm(TmwKeystrokesEditorForm, Dlg);
try
Dlg.Caption := 'mwEdit Keystroke Editor';
Dlg.Keystrokes := mwEdit.Keystrokes;
if Dlg.ShowModal = mrOk then
begin
mwEdit.Keystrokes := Dlg.Keystrokes;
UpdateKeystrokesList;
end;
finally
Dlg.Free;
end;
end;
procedure TForm1.cbInternalImagesClick(Sender: TObject);
begin
RebuildMarks;
mwEdit.SetFocus;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
mark: TMark;
begin
if not disableMarkButtons then begin
with mwEdit do begin
Marks.ClearLine(CaretY);
if (Sender as TSpeedButton).Down then begin
mark := TMark.Create(mwEdit);
with mark do begin
Line := CaretY;
Column := CaretX;
ImageIndex := (Sender as TSpeedButton).Tag;
IsBookmark := false;
Visible := true;
InternalImage := (BookMarkOptions.BookMarkImages = nil); //mh 1999-10-04
end;
Marks.Place(mark);
end;
end;
end;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?