⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 synoptionsdlg.pas

📁 用delphi写的delphi源代码 用delphi写的delphi源代码 用delphi写的delphi源代码 用delphi写的delphi源代码
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit SynOptionsDlg;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ImgList, ComCtrls, ExtCtrls, Grids,SynEditSource,
  SynEdit, SynEditMiscClasses, SynEditTypes;

{$I SynEdit.inc}

type
  TSynOptionsForm = class(TForm)
    Button3: TButton;
    Button2: TButton;
    Button1: TButton;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    sTabWidth: TEdit;
    Label1: TLabel;
    sBlockWidth: TEdit;
    cbSelectmode: TComboBox;
    Label8: TLabel;
    GroupBox4: TGroupBox;
    soAltSetsColumnMode: TCheckBox;
    soAutoIndent: TCheckBox;
    soDragDropEditing: TCheckBox;
    soDropFiles: TCheckBox;
    soGroupUndo: TCheckBox;
    soShowSpecialChars: TCheckBox;
    soSmartTabs: TCheckBox;
    soSmartTabDelete: TCheckBox;
    soTabIndent: TCheckBox;
    soTabsToSpace: TCheckBox;
    cbInsertMode: TCheckBox;
    cbCodeFolding: TCheckBox;
    cbPastEol: TCheckBox;
    CheckBox1: TCheckBox;
    sMaxUndo: TEdit;
    Label2: TLabel;
    sMaxScroll: TEdit;
    Label6: TLabel;
    Label3: TLabel;
    TabSheet3: TTabSheet;
    TabSheet4: TTabSheet;
    GroupBox6: TGroupBox;
    sShowLineDivder: TCheckBox;
    sShowActiveLine: TCheckBox;
    sShowGutter: TCheckBox;
    sShowRightEdge: TCheckBox;
    sRightEdgeMouseMove: TCheckBox;
    sShowLineNumber: TCheckBox;
    LabelRightEdgePos: TLabel;
    sRightEdgePos: TEdit;
    sWordWrap: TCheckBox;
    LabelWordwrapStyle: TLabel;
    sWordwrapStyle: TComboBox;
    sWordwrapPos: TEdit;
    LabelWordwrapPos: TLabel;
    GroupBox9: TGroupBox;
    Label5: TLabel;
    BackColorBox: TColorBox;
    Label7: TLabel;
    SelTextColorBox: TColorBox;
    Label10: TLabel;
    SelBackColorBox: TColorBox;
    Label11: TLabel;
    CurTextColorBox: TColorBox;
    CurBackColorBox: TColorBox;
    Label12: TLabel;
    GroupBox1: TGroupBox;
    LabelLineSpacingRule: TLabel;
    sLineSpacingRule: TComboBox;
    LabelLineSpacing: TLabel;
    sLineSpacing: TEdit;
    Label9: TLabel;
    sFontNameCom: TComboBox;
    Label13: TLabel;
    sFontsizeCom: TComboBox;
    FontPreview: TPanel;
    Label4: TLabel;
    CheckBox2: TCheckBox;
    sBackground: TCheckBox;
    procedure CurBackColorBoxChange(Sender: TObject);
    procedure CurTextColorBoxChange(Sender: TObject);
    procedure SelBackColorBoxChange(Sender: TObject);
    procedure SelTextColorBoxChange(Sender: TObject);
    procedure BackColorBoxChange(Sender: TObject);
    procedure sFontsizeComChange(Sender: TObject);
    procedure sFontNameComChange(Sender: TObject);
    procedure cbInsertModeClick(Sender: TObject);
    procedure cbSelectmodeChange(Sender: TObject);
    procedure cbCodeFoldingClick(Sender: TObject);
    procedure cbPastEolClick(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure sLineNumberStartKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure sBlockWidthChange(Sender: TObject);
    procedure sLineSpacingChange(Sender: TObject);
    procedure sLineSpacingRuleChange(Sender: TObject);
    procedure sMaxScrollChange(Sender: TObject);
    procedure sMaxUndoChange(Sender: TObject);
    procedure soAltSetsColumnModeClick(Sender: TObject);
    procedure soAutoIndentClick(Sender: TObject);
    procedure soDragDropEditingClick(Sender: TObject);
    procedure soDropFilesClick(Sender: TObject);
    procedure soGroupUndoClick(Sender: TObject);
    procedure soShowSpecialCharsClick(Sender: TObject);
    procedure soSmartTabDeleteClick(Sender: TObject);
    procedure soSmartTabsClick(Sender: TObject);
    procedure soTabIndentClick(Sender: TObject);
    procedure soTabsToSpaceClick(Sender: TObject);
    procedure sRightEdgeMouseMoveClick(Sender: TObject);
    procedure sRightEdgePosChange(Sender: TObject);
    procedure sShowActiveLineClick(Sender: TObject);
    procedure sShowGutterClick(Sender: TObject);
    procedure sShowLineDivderClick(Sender: TObject);
    procedure sShowLineNumberClick(Sender: TObject);
    procedure sShowRightEdgeClick(Sender: TObject);
    procedure sTabWidthChange(Sender: TObject);
    procedure sWordWrapClick(Sender: TObject);
    procedure sWordwrapPosChange(Sender: TObject);
    procedure sWordwrapStyleChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
    procedure sBackgroundClick(Sender: TObject);
  private
    FDefault, Source : TSynEditSource;
    procedure SetOptions(checked : Boolean; Option : TSynEditorOption);
    function GetOptions(Option : TSynEditorOption): Boolean;
  public
    { Public declarations }
    procedure SetValue(Source : TSynEditSource);
    procedure GetValue(Source : TSynEditSource; SynEdit : TCustomSynEdit);
    procedure Execute(default : TSynEditSource; SynEdit : TCustomSynEdit);
  end;

var
  SynOptionsForm: TSynOptionsForm;

implementation

{$R *.dfm}

procedure TSynOptionsForm.sLineSpacingChange(Sender: TObject);
begin
  Source.LineSpacing := StrToInt(sLineSpacing.Text);
end;

procedure TSynOptionsForm.sLineSpacingRuleChange(Sender: TObject);
begin
  Source.LineSpacingRule := TLineSpacingRule(sLineSpacingRule.ItemIndex)
end;

procedure TSynOptionsForm.sShowGutterClick(Sender: TObject);
begin
  Source.Gutter.Visible := sShowGutter.Checked;
end;

procedure TSynOptionsForm.sShowLineNumberClick(Sender: TObject);
begin
  Source.Gutter.ShowLineNumbers := sShowLineNumber.Checked;
end;

procedure TSynOptionsForm.sWordwrapStyleChange(Sender: TObject);
begin
  if sWordwrapStyle.ItemIndex in [0..2] then
    source.WordWrap.Style := TSynWordWrapStyle(sWordwrapStyle.ItemIndex)
end;

procedure TSynOptionsForm.sWordwrapPosChange(Sender: TObject);
begin
  Source.WordWrap.Position := StrToInt(sWordwrapPos.Text);
end;

procedure TSynOptionsForm.sShowRightEdgeClick(Sender: TObject);
begin
  Source.RightEdge.Visible := sShowRightEdge.Checked;
end;

procedure TSynOptionsForm.sRightEdgePosChange(Sender: TObject);
begin
  source.RightEdge.Position := StrToInt(sRightEdgePos.Text);
end;

procedure TSynOptionsForm.sShowActiveLineClick(Sender: TObject);
begin
  source.ActiveLine.Visible := sShowActiveLine.Checked;
  source.ActiveLine.Indicator.Visible := sShowActiveLine.Checked;
end;

procedure TSynOptionsForm.sShowLineDivderClick(Sender: TObject);
begin
  Source.LineDivider.Visible := sShowLineDivder.Checked
end;

procedure TSynOptionsForm.sBlockWidthChange(Sender: TObject);
begin
  Source.BlockWidth := StrToInt(sBlockWidth.text)
end;

procedure TSynOptionsForm.sMaxUndoChange(Sender: TObject);
begin
  Source.MaxUndo := StrToInt(sMaxUndo.text)
end;

procedure TSynOptionsForm.sTabWidthChange(Sender: TObject);
begin
  Source.TabWidth := StrToInt(sTabWidth.text)
end;

procedure TSynOptionsForm.soAltSetsColumnModeClick(Sender: TObject);
begin
  SetOptions(soAltSetsColumnMode.Checked, eoAltSetsColumnMode);
end;

procedure TSynOptionsForm.SelBackColorBoxChange(Sender: TObject);
begin
  Source.SelectedColor.Background := selbackcolorbox.Selected;
end;

procedure TSynOptionsForm.SelTextColorBoxChange(Sender: TObject);
begin
  Source.SelectedColor.Foreground := seltextcolorbox.Selected;
end;

procedure TSynOptionsForm.SetOptions(checked: Boolean;
  Option: TSynEditorOption);
begin
  if checked then
     Source.Options := Source.Options + [Option]
  else Source.Options := Source.Options - [Option]
end;

procedure TSynOptionsForm.soAutoIndentClick(Sender: TObject);
begin
  SetOptions(soAutoIndent.Checked, eoAutoIndent);
end;

procedure TSynOptionsForm.soDragDropEditingClick(Sender: TObject);
begin
  SetOptions(soDragDropEditing.Checked, eoDragDropEditing);
end;

procedure TSynOptionsForm.soDropFilesClick(Sender: TObject);
begin
  SetOptions(soDropFiles.Checked, eoDropFiles);
end;

procedure TSynOptionsForm.soGroupUndoClick(Sender: TObject);
begin
  SetOptions(soGroupUndo.Checked, eoGroupUndo);
end;

procedure TSynOptionsForm.soShowSpecialCharsClick(Sender: TObject);
begin
  SetOptions(soShowSpecialChars.Checked, eoShowSpecialChars);
end;

procedure TSynOptionsForm.soSmartTabsClick(Sender: TObject);
begin
  SetOptions(soSmartTabs.Checked, eoSmartTabs);
end;

procedure TSynOptionsForm.soSmartTabDeleteClick(Sender: TObject);
begin
  SetOptions(soSmartTabDelete.Checked, eoSmartTabDelete);
end;

procedure TSynOptionsForm.soTabIndentClick(Sender: TObject);
begin
  SetOptions(soTabIndent.Checked, eoTabIndent);
end;

procedure TSynOptionsForm.soTabsToSpaceClick(Sender: TObject);
begin
  SetOptions(soTabsToSpace.Checked, eoTabsToSpaces);
end;


procedure TSynOptionsForm.Button5Click(Sender: TObject);
begin
  with TFontDialog.Create(Self) do
  begin
    Font := Source.Font;
    Options := Options + [fdFixedPitchOnly];
    if Execute then
    begin
      FontPreview.Font := font;
      Source.Font := Font;
      sFontSizeCom.Text := IntTostr(Font.Size);
      sFontNameCom.ItemIndex := sFontNameCom.Items.IndexOf(Font.Name);
    end;
  end;
end;

procedure TSynOptionsForm.cbCodeFoldingClick(Sender: TObject);
begin
  {$IFDEF CODEFOLDING}
  //### Code Folding ###
  Source.CodeFolding.Enabled := cbCodeFolding.Checked;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -