editu2.pas
来自「本人买的<<VC++项目开发实例>>源代码配套光盘.」· PAS 代码 · 共 1,411 行 · 第 1/4 页
PAS
1,411 行
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);
begin
mwEdit.Gutter.LeadingZeros := cbLeadingZeros.Checked; //gp 1999-06-10
mwEdit.SetFocus;
end;
procedure TForm1.cbZeroStartClick(Sender: TObject);
begin
mwEdit.Gutter.ZeroStart := cbZeroStart.Checked; //gp 1999-06-10
mwEdit.SetFocus;
end;
procedure TForm1.mwEditMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if cbEnableEventLog.Checked and cbMouse.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnMouseDown');
end;
procedure TForm1.mwEditMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if cbEnableEventLog.Checked and cbMouse.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnMouseMove');
end;
procedure TForm1.mwEditMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if cbEnableEventLog.Checked and cbMouse.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnMouseUp');
end;
procedure TForm1.btnClearClick(Sender: TObject);
begin
lbEventLog.Clear;
end;
procedure TForm1.cbAutoIndentClick(Sender: TObject);
begin
// mwEdit.Autoindent := cbAutoindent.Checked; //mh 1999-10-04
mwEdit.SetOptionFlag(mweoAutoIndent, cbAutoIndent.Checked);
mwEdit.SetFocus;
end;
procedure TForm1.cbxREColorChange(Sender: TObject);
begin
mwEdit.RightEdgeColor := IndexToColor(cbxREColor.ItemIndex);
mwEdit.SetFocus;
end;
procedure TForm1.cbHalfPageScrollClick(Sender: TObject);
begin
// mwEdit.HalfpageScroll := cbHalfpageScroll.Checked; //mh 1999-10-04
// mwEdit.SetOptionFlag(mweoHalfpageScroll, cbAutoindent.Checked); //nmi 1999-11-01
mwEdit.SetOptionFlag(mweoHalfpageScroll, cbHalfPageScroll.Checked);
mwEdit.SetFocus;
end;
procedure TForm1.inpTabWidthChange(Sender: TObject);
begin
// try mwEdit.TabIndent := inpTabIndent.Value; //mh 1999-10-04
try mwEdit.TabWidth := inpTabWidth.Value;
except end;
mwEdit.SetFocus;
end;
procedure TForm1.cbWantTabsClick(Sender: TObject);
begin
mwEdit.WantTabs := cbWantTabs.Checked;
mwEdit.SetFocus;
end;
procedure TForm1.mwEditSelectionChange(Sender: TObject);
begin
if cbEnableEventLog.Checked and cbOther.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnSelectionChange');
end;
procedure TForm1.inpDigitCountChange(Sender: TObject);
begin
try mwEdit.Gutter.DigitCount := inpDigitCount.Value;
except end;
RecalcLeftMargin;
mwEdit.SetFocus;
end;
procedure TForm1.inpLeftOffsetChange(Sender: TObject);
begin
try mwEdit.Gutter.LeftOffset := inpLeftOffset.Value;
except end;
RecalcLeftMargin;
mwEdit.SetFocus;
end;
procedure TForm1.inpRightOffsetChange(Sender: TObject);
begin
try mwEdit.Gutter.RightOffset := inpRightOffset.Value;
except end;
RecalcLeftMargin;
mwEdit.SetFocus;
end;
procedure TForm1.RecalcLeftMargin;
begin
inpLeftMargin.MaxValue := mwEdit.Gutter.Width;
if inpLeftMargin.Value > inpLeftMargin.MaxValue then
inpLeftMargin.Value := inpLeftMargin.MaxValue;
end;
procedure TForm1.cbxExporterSelectChange(Sender: TObject);
begin
btnExportToClip.Enabled := cbxExporterSelect.ItemIndex > 0;
btnExportAllToClip.Enabled := btnExportToClip.Enabled;
end;
procedure TForm1.btnExportToClipClick(Sender: TObject);
var
i: integer;
begin
mwEdit.Highlighter.Exporter := nil;
for i := 0 to ComponentCount-1 do
if (Components[i] is TmwCustomExport) and
((Components[i] as TmwCustomExport).ExporterName = cbxExporterSelect.Text) then begin
mwEdit.Highlighter.Exporter := (Components[i] as TmwCustomExport);
break;
end;
if assigned(mwEdit.Highlighter.Exporter) then begin
if Sender = btnExportAllToClip then mwEdit.SelectAll;
TmwCustomExport(mwEdit.Highlighter.Exporter).CopyToClipboardFormat(mwEdit,mwEdit.Highlighter,CF_TEXT);
mwEdit.Highlighter.Exporter := nil;
if Sender = btnExportAllToClip then mwEdit.BlockEnd := mwEdit.BlockBegin;
end;
end;
procedure TForm1.btnSearchClick(Sender: TObject);
begin
FindDialog1.Execute;
btnSearchNext.Enabled := TRUE;
btnSearchPrev.Enabled := TRUE;
end;
procedure TForm1.btnSearchNextClick(Sender: TObject);
begin
if (Sender = btnSearchNext) then
FindDialog1.Options := FindDialog1.Options + [frDown]
else if (Sender = btnSearchPrev) then
FindDialog1.Options := FindDialog1.Options - [frDown];
DoFindText(Sender);
mwEdit.SetFocus;
end;
procedure TForm1.DoFindText(Sender: TObject);
var rOptions: TmwSearchOptions;
dlg: TFindDialog;
sSearch: string;
begin
if Sender = ReplaceDialog1 then dlg := ReplaceDialog1
else dlg := FindDialog1;
sSearch := dlg.FindText;
if Length(sSearch) = 0 then begin
Beep;
lblSearchResult.Caption := 'Can''t search for empty text!';
lblSearchResult.Visible := TRUE;
end else begin
rOptions := [];
if not (frDown in dlg.Options) then
Include(rOptions, mwsoBackwards);
if frMatchCase in dlg.Options then
Include(rOptions, mwsoMatchCase);
if frWholeWord in dlg.Options then
Include(rOptions, mwsoWholeWord);
if mwEdit.SearchReplace(sSearch, '', rOptions) = 0 then begin
Beep;
lblSearchResult.Caption := 'SearchText ''' + sSearch + ''' not found!';
lblSearchResult.Visible := TRUE;
end else
lblSearchResult.Visible := FALSE;
end;
end;
procedure TForm1.btnReplaceClick(Sender: TObject);
begin
ReplaceDialog1.Execute;
end;
procedure TForm1.DoReplaceText(Sender: TObject);
var rOptions: TmwSearchOptions;
sSearch: string;
begin
sSearch := ReplaceDialog1.FindText;
if Length(sSearch) = 0 then begin
Beep;
lblSearchResult.Caption := 'Can''t replace an empty text!';
lblSearchResult.Visible := TRUE;
end else begin
rOptions := [mwsoReplace];
if frMatchCase in ReplaceDialog1.Options then
Include(rOptions, mwsoMatchCase);
if frWholeWord in ReplaceDialog1.Options then
Include(rOptions, mwsoWholeWord);
if frReplaceAll in ReplaceDialog1.Options then
Include(rOptions, mwsoReplaceAll);
if mwEdit.SearchReplace(sSearch, ReplaceDialog1.ReplaceText, rOptions) = 0
then begin
Beep;
lblSearchResult.Caption := 'SearchText ''' + sSearch +
''' could not be replaced!';
lblSearchResult.Visible := TRUE;
end else
lblSearchResult.Visible := FALSE;
end;
end;
procedure TForm1.mwEditSpecialLineColors(Sender: TObject; Line: Integer; //mh 1999-10-05
var Special: Boolean; var FG, BG: TColor);
begin
if Line = 42 then begin
Special := TRUE;
BG := clYellow;
FG := clBlack;
end;
end;
procedure TForm1.mwEditDropFiles(Sender: TObject; X, Y: Integer; //mh 1999-11-02
Files: TStrings);
begin
if cbEnableEventLog.Checked and cbOther.Checked then
lbEventLog.Items.Insert(0, TimeToStr(Now) + ' OnDropFiles');
if Files.Count >= 1 then
LoadFile(Files[0]);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?