📄 syneditactions.pas
字号:
begin
if SynEditAllocated(Target) then
begin
if not FActiveSynEdit.SelAvail then
FActiveSynEdit.ExecuteCommand(ecSelectLine, #0, nil);
FActiveSynEdit.ExecuteCommand(ecBlockIndent, #0, nil);
end;
end;
{ TSynEditUnindent }
procedure TaSynBlockUnindent.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
begin
if not FActiveSynEdit.SelAvail then
FActiveSynEdit.ExecuteCommand(ecSelectLine, #0, nil);
FActiveSynEdit.ExecuteCommand(ecBlockUnindent, #0, nil);
end;
end;
{ TSynEditGotoLastChange }
procedure TaSynGotoLastChange.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExecuteCommand(ecGotoLastChange, #0, nil);
end;
{ TSynEditMatchBracket }
procedure TaSynMatchBracket.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExecuteCommand(ecMatchBracket, #0, nil);
end;
{ TSynEditCommentBlock }
procedure TaSynCommentBlock.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExecuteCommand(ecCommentBlock, #0, nil);
end;
{ TaSynAppendCut }
procedure TaSynAppendCut.ExecuteTarget(Target: TObject);
begin
IF SynEditAllocated(Target) then
begin
Clipboard.AsText := Clipboard.AsText + FActiveSynEdit.SelText;
FActiveSynEdit.ClearSelection;
end;
end;
{ TaSynAppendCopy }
procedure TaSynAppendCopy.ExecuteTarget(Target: TObject);
begin
If SynEditAllocated(Target) then
Clipboard.AsText := Clipboard.AsText + FActiveSynEdit.SelText
end;
function TaSynAppendCopy.HandlesTarget(Target: TObject): Boolean;
begin
result := SynEditAllocated(Target) and FActiveSynEdit.SelAvail;
end;
{ TaSynDeleteNextchar }
procedure TaSynDeleteNextchar.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExecuteCommand(ecDeleteChar, #0, nil);
end;
{ TaSynDeleteLastChar }
procedure TaSynDeleteLastChar.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExecuteCommand(ecDeleteLastChar, #0, nil);
end;
{ TaSynDeleteWordToEnd }
procedure TaSynDeleteWordToEnd.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExecuteCommand(ecDeleteWord, #0, nil);
end;
{ TaSynDeleteWordToStart }
procedure TaSynDeleteWordToStart.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExecuteCommand(ecDeleteLastWord, #0, nil);
end;
{ TaSynDeleteCursorWord }
procedure TaSynDeleteWord.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExecuteCommand(ecDeleteCursorWord, #0, nil);
end;
{ TaSynDeleteLineToEnd }
procedure TaSynDeleteLineToEnd.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExecuteCommand(ecDeleteEOL, #0, nil);
end;
{ TaSynDeleteLineToStart }
procedure TaSynDeleteLineToStart.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExecuteCommand(ecDeleteBOL, #0, nil);
end;
{ TaSynDeleteCursorLine }
procedure TaSynDeleteLine.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExecuteCommand(ecDeleteLine, #0, nil);
end;
{ TaSynSelectAll }
procedure TaSynSelectAll.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.SelectAll;
end;
{ TaSynSelectLine }
procedure TaSynSelectLine.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExecuteCommand(ecSelectLine, #0, nil);
end;
{ TaSynSelectNextLine }
procedure TaSynSelectNextLine.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExecuteCommand(ecSelNextLine, #0, nil);
end;
{ TaSynSelectLastLine }
procedure TaSynSelectLastLine.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExecuteCommand(ecSelPrevLine, #0, nil);
end;
{ TaSynSelectWrod }
procedure TaSynSelectWrod.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.SetSelWord;
end;
{ TaSynSelectNextWord }
procedure TaSynSelectNextWord.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExecuteCommand(ecSelNextWord, #0, nil);
end;
{ TaSynSelectLastWord }
procedure TaSynSelectLastWord.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExecuteCommand(ecSelPrevWord, #0, nil);
end;
{ TaSynClearAll }
procedure TaSynClearAll.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.Lines.Text := '';
end;
{ TaSynReadOnly }
procedure TaSynReadOnly.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ReadOnly := not Checked;
end;
procedure TaSynReadOnly.UpdateTarget(Target: TObject);
begin
inherited;
if SynEditAllocated(Target) then
Checked := FActiveSynEdit.ReadOnly;
end;
{ TaSynNormalSelect }
procedure TaSynNormalSelect.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.SelectionMode := smNormal;
end;
procedure TaSynNormalSelect.UpdateTarget(Target: TObject);
begin
inherited;
if SynEditAllocated(Target) then
Checked := FActiveSynEdit.SelectionMode = smNormal;
end;
{ TaSynColumnSelect }
procedure TaSynColumnSelect.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.SelectionMode := smColumn;
end;
procedure TaSynColumnSelect.UpdateTarget(Target: TObject);
begin
inherited;
if SynEditAllocated(Target) then
Checked := FActiveSynEdit.SelectionMode = smColumn;
end;
{ TaSynLineSelect }
procedure TaSynLineSelect.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.SelectionMode := smLine;
end;
procedure TaSynLineSelect.UpdateTarget(Target: TObject);
begin
inherited;
if SynEditAllocated(Target) then
Checked := FActiveSynEdit.SelectionMode = smLine;
end;
{ TaSynInsertLine }
procedure TaSynInsertLine.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExecuteCommand(ecInsertLine, #0, nil);
end;
{ TaSynLineBreak }
procedure TaSynLineBreak.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExecuteCommand(ecLineBreak, #0, nil);
end;
{ TaSynFormatDos }
procedure TaSynFileFormatDos.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
TSynEditStringList(FActiveSynEdit.Lines).FileFormat := sffDos;
end;
procedure TaSynFileFormatDos.UpdateTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
Checked := TSynEditStringList(FActiveSynEdit.Lines).FileFormat = sffDos;
end;
{ TaSynFormatMac }
procedure TaSynFileFormatMac.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
TSynEditStringList(FActiveSynEdit.Lines).FileFormat := sffMac;
end;
procedure TaSynFileFormatMac.UpdateTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
Checked := TSynEditStringList(FActiveSynEdit.Lines).FileFormat = sffMac;
end;
{ TaSynFormatUnix }
procedure TaSynFileFormatUnix.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
TSynEditStringList(FActiveSynEdit.Lines).FileFormat := sffUnix;
end;
procedure TaSynFileFormatUnix.UpdateTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
Checked := TSynEditStringList(FActiveSynEdit.Lines).FileFormat = sffUnix;
end;
{ TaSynPrint }
procedure TaSynPrint.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) and (Print <> nil) and (Printer.Printers.Count > 0) then
FActiveSynEdit.ExecuteCommand(ecPrint, '1', fPrint);
end;
function TaSynPrint.HandlesTarget(Target: TObject): Boolean;
begin
result := SynEditAllocated(Target) and (Printer.Printers.Count > 0);
end;
{ TaSynQuickPrint }
procedure TaSynQuickPrint.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) and (Print <> nil) and (Printer.Printers.Count > 0) then
FActiveSynEdit.ExecuteCommand(ecPrint, #0, fPrint);
end;
function TaSynQuickPrint.HandlesTarget(Target: TObject): Boolean;
begin
result := SynEditAllocated(Target) and (Printer.Printers.Count > 0);
end;
{ TaSynExporter }
procedure TaSynExporter.ExecuteTarget(Target: TObject);
begin
if SynEditAllocated(Target) then
FActiveSynEdit.ExportDocument('', fExporter, [doDefine]);
end;
procedure TaSynExporter.Notification(AComponent: TComponent;
Operation: TOperation);
begin
inherited;
if (AComponent = fExporter) and (Operation = opRemove) then
fExporter := nil;
end;
procedure TaSynExporter.SetExporter(const Value: TSynCustomExporter);
begin
if fExporter <> nil then
fExporter.RemoveFreeNotification(self);
fExporter := Value;
if fExporter <> nil then
fExporter.FreeNotification(self);
end;
{ TSynCustomManager }
function TSynCustomManager.AddEditor(SynEditor: TCustomSynEditor): integer;
begin
result := -1;
if FSynEditors.IndexOfObject(SynEditor) < 0 then
begin
result := FSynEditors.AddObject('', SynEditor);
SynEditor.FreeNotification(self);
if EditorsEvent <> nil then
EditorsEvent.AssignTo(SynEditor);
IF EditorSource <> nil then
EditorSource.AssignTo(SynEditor);
IF AutoCorrect <> nil then
AutoCorrect.AddEditor(SynEditor);
// {$IFDEF SPELLCHECK}
// IF SpellCheck <> nil then
// SpellCheck.AddEditor(SynEditor);
// {$ENDIF}
Highlighters.HighlighterAssignTo(SynEditor, Highlighters.DefaultLanguageIndex);
if Assigned(FOnAddEditor) then
FOnAddEditor(Self, Result);
end;
end;
constructor TSynCustomManager.Create(AOwner: TComponent);
begin
inherited;
FSynEditors := TStringList.Create;
FHighlighters := TSynHighlighters.Create(TSynHighlighterItem);
FHighlighters.FManager := Self;
Manager := Self;
end;
function TSynCustomManager.CreateIniFile(FileName : string): TCustomIniFile;
begin
Result := nil;
if Assigned(fOnCreateIniFile) then
fOnCreateIniFile(self, FileName, Result);
if not Assigned(Result) then
Result := TIniFile.Create(FileName);
end;
function TSynHighlighters.GetDefaultLanguageIndex: Integer;
begin
for Result := 0 to Count -1 do
if LowerCase(Highlighters[Result].LanguageName) = LowerCase(FDefaultLanguage) then
exit;
Result := -1;
end;
procedure TSynCustomManager.DeleteEditor(SynEditor: TCustomSynEditor);
var
i : integer;
begin
i := FSynEditors.IndexOfObject(SynEditor);
if i >= 0 then
begin
IF fAutoCorrect <> nil then
fAutoCorrect.RemoveEditor(SynEditor);
{$IFDEF SPELLCHECK}
IF fSpellCheck <> nil then
fSpellCheck.RemoveEditor(SynEditor);
{$ENDIF}
if Assigned(FOnDeleteEditor) then
FOnDeleteEditor(Self, I);
FSynEditors.Delete(i);
SynEditor.RemoveFreeNotification(self);
end;
end;
destructor TSynCustomManager.Destroy;
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -