editu2.pas
来自「著名的Handle」· PAS 代码 · 共 1,632 行 · 第 1/4 页
PAS
1,632 行
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.Panels[3].Text := 'Success' //mh 1999-12-12
else StatusBar.Panels[3].Text := 'Failure'; //mh 1999-12-12
end;
procedure TForm1.btnLoadFromRegClick(Sender: TObject);
begin
if mwEdit.Highlighter.LoadFromRegistry(HKEY_CURRENT_USER,'\Software\mwEdit team\Highlighters\'+cbxHighlighterSelect.Text) then begin
StatusBar.Panels[3].Text := 'Success'; //mh 1999-12-12
cbxAttrSelectChange(Self);
end
else StatusBar.Panels[3].Text := 'Failure'; //mh 1999-12-12
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;
end;
procedure TForm1.mwEditPlaceMark(Sender: TObject; var mark: TMark); //nmi 1999-10-17
begin
if cbEnableEventLog.Checked and cbOther.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnPlaceMark');
if mark.IsBookmark then mark.InternalImage := cbInternalImages.Checked;
end;
procedure TForm1.ResetMarkButtons;
var
marks: TMarks;
i: integer;
begin
disableMarkButtons := true;
try
mwEdit.Marks.GetMarksForLine(mwEdit.CaretY,marks);
for i := 0 to 4 do markButtons[i].Down := false;
for i := 1 to maxMarks do begin
if not assigned(marks[i]) then break;
if not marks[i].IsBookmark then
markButtons[marks[i].ImageIndex-10].Down := true;
end;
finally disableMarkButtons := false; end;
end;
procedure TForm1.inpXOffsetChange(Sender: TObject);
begin
try mwEdit.BookMarkOptions.XOffset := inpXOffset.Value;
except end;
mwEdit.SetFocus;
end;
procedure TForm1.RebuildMarks;
var
i: integer;
begin
with mwEdit do begin
BeginUpdate;
try
for i := 0 to Marks.Count-1 do
with Marks[i] do
if IsBookmark then InternalImage := cbInternalImages.Checked;
finally EndUpdate; end;
end;
end;
procedure TForm1.inpExtraLineSpacingChange(Sender: TObject);
begin
try mwEdit.ExtraLineSpacing := inpExtraLineSpacing.Value;
except end;
mwEdit.SetFocus;
end;
procedure TForm1.btnRedoClick(Sender: TObject);
begin
mwEdit.Redo;
mwEdit.SetFocus;
end;
procedure TForm1.btnPrintClick(Sender: TObject);
var
Options: TmwPrintOptions;
begin
Options.SelectedOnly := mwEdit.SelAvail;
Options.Highlighted := mwEdit.HighLighter <> NIL;
Options.IgnoreColors := FALSE; //mh 1999-10-04
Options.WrapLongLines := FALSE; // Not implemented yet!
Options.Copies := 1;
Options.PrintRange := Rect(0,0,0,0); // Not using it here.
Options.MarginUnits := muThousandthsOfInches;
Options.Margins := Rect(500, 500, 500, 500); // 1/2 inch margins
{ For you metric folks.
Options.MarginUnits := muMillimeters;
Options.Margins := Rect(30,30,30,30); // 3 centimeter margins
}
Options.Header := TStringList.Create;
Options.Footer := TStringList.Create;
{begin} //hdl 1999-05-11
try
Options.Title := 'This is title';
Options.Header.AddObject('Title: $title$', TObject(hfaCenter));
Options.Header.AddObject('Printing Time and Date: $time$ $date$',TObject(hfaLeft));
Options.Header.Add('');
Options.Footer.Add('');
Options.Footer.AddObject('Page Number: $pagenum$ Printing Date/Time: $datetime$', TObject(hfaRight));
{end} //hdl 1999-05-11
// Use whatever font the editor has.
mwEdit.Print(NIL, Options);
finally
Options.Header.Free;
Options.Footer.Free;
end;
end;
procedure TForm1.mwEditCommandDone(Sender: TObject);
begin
if cbEnableEventLog.Checked and cbKeyboard.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnCommandDone');
end;
procedure TForm1.mwEditPrintStatus(Sender: TObject; //nmi 1999-10-17
Status: TmwPrintStatus; PageNumber: Integer; var Abort: Boolean);
begin
if cbEnableEventLog.Checked and cbOther.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnPrintStatus');
end;
procedure TForm1.cbLineNumbersClick(Sender: TObject);
begin
mwEdit.Gutter.ShowLineNumbers := cbLineNumbers.Checked; //gp 1999-06-10
mwEdit.SetFocus;
end;
procedure TForm1.cbLeadingZerosClick(Sender: TObject);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?