unit2.pas.svn-base

来自「支持自定义语法高亮显示的编辑器控件」· SVN-BASE 代码 · 共 1,327 行 · 第 1/3 页

SVN-BASE
1,327
字号
      Delete(Str, 1, P);
      P := Pos('|', Str);
      if P <> 0 then
        Str := Copy(Str, 1, P - 1);
    end;
    if Pos(UpperCase(s), UpperCase(Str)) <> 0 then
    begin
      result := true;
      Handled := true;
    end;
  end;

begin
  with EasyEdit3 do
    if PopupListBox.Visible then
    begin
      Index := PopupListBox.ItemIndex;
      if (Index >= 0) and (Index < AStrings.Count) and _Check(AStrings[Index]) then
        Exit;
    end;

  for i := 0 to AStrings.Count - 1 do
    if _Check(AStrings[i]) then
    begin
      Index := i;
      Exit;
    end;
  Handled := false;
end;

{------------------------------------------------------}

procedure TfrmContainer.EasycbBeginColorStyleChange(Sender: TObject);
begin
  EasyEdit4.Background.GradientStartColor := cbBeginColorStyle.SelectedColor;
end;

{------------------------------------------------------}

procedure TfrmContainer.EasycbEndColorStyleChange(Sender: TObject);
begin
  EasyEdit4.Background.GradientEndColor := cbEndColorStyle.SelectedColor;
end;

{------------------------------------------------------}

procedure TfrmContainer.lbLanguagesClick(Sender: TObject);
var
  FileLanguageText,
  FileLanguageRules : String;
begin
  FileLanguageRules := ExtractFilePath(ParamStr(0))+ '..\' + 'syntax\' + LanguagesRules[lbLanguages.ItemIndex+1];
  FileLanguageText := ExtractFilePath(ParamStr(0)) + '..\' + 'text\' + LanguagesText[lbLanguages.ItemIndex+1];
  EasyEditorParser3.Rules.LoadFromFile(FileLanguageRules);
  EasyEdit3.Lines.LoadFromFile(FileLanguageText);
end;

{------------------------------------------------------}

procedure TfrmContainer.btFindClick(Sender: TObject);
begin
  EasyEdit5.ExecuteDialog(cFind);
end;

{------------------------------------------------------}

procedure TfrmContainer.btReplaceClick(Sender: TObject);
begin
  EasyEdit5.ExecuteDialog(cReplace);
end;

{------------------------------------------------------}

procedure TfrmContainer.btGoToClick(Sender: TObject);
begin
  EasyEdit5.ExecuteDialog(cGotoLine);
end;

{------------------------------------------------------}

procedure TfrmContainer.btCustomizeClick(Sender: TObject);
begin
  ShowEditorSettings;
end;

{------------------------------------------------------}

procedure TfrmContainer.chbLineNumbersClick(Sender: TObject);
begin
  with EasyEdit1.LineNumbers do
    Visible := chbLineNumbers.Checked;
end;

{------------------------------------------------------}

procedure TfrmContainer.chbLinesOnGutterClick(Sender: TObject);
begin
  with EasyEdit1.LineNumbers do
    if chbLinesOnGutter.Checked and chbShowGutter.Checked then
      Options := Options + [lnPaintOnGutter]
    else
      Options := Options - [lnPaintOnGutter];
end;

{------------------------------------------------------}

procedure TfrmContainer.chbShowGutterClick(Sender: TObject);
begin
  with EasyEdit1 do
  try
    if chbShowGutter.Checked then
    begin
      Options := Options + [eoPaintGutter];
      Gutter.Width := StrToInt(edWidth.Text);
    end
    else
      Options := Options - [eoPaintGutter];
  except
  end;
end;

{------------------------------------------------------}

procedure TfrmContainer.edWidthEnter(Sender: TObject);
begin
  with EasyEdit1.Gutter do
    if chbShowGutter.Checked then
      Width := StrToInt(edWidth.Text);
end;

{------------------------------------------------------}

procedure TfrmContainer.cbGutterColorChange(Sender: TObject);
begin
  with EasyEdit1.Gutter.Brush do
    if chbShowGutter.Checked then
      Color := cbGutterColor.SelectedColor;
end;

{------------------------------------------------------}

procedure TfrmContainer.chbShowMarginClick(Sender: TObject);
begin
  with EasyEdit1 do
    if chbShowMargin.Checked then
    begin
      Options := Options + [eoPaintMargin];
      Margin.Pen.Color := EasyColorBox1.SelectedColor;
    end
    else
      Options := Options - [eoPaintMargin];
end;

{------------------------------------------------------}

procedure TfrmContainer.edMarginPositionEnter(Sender: TObject);
begin
  with EasyEdit1.Margin do
    if chbShowMargin.Checked then
      Position := StrToInt(edMarginPosition.Text);
end;

{------------------------------------------------------}

procedure TfrmContainer.EasyColorBox1Change(Sender: TObject);
begin
  with EasyEdit1.Margin.Pen do
    if chbShowMargin.Checked then
      Color := EasyColorBox1.SelectedColor;
end;

{------------------------------------------------------}

procedure TfrmContainer.SpeedButton1Click(Sender: TObject);
begin
  EasyEdit1.ToggleBookMark(1)
end;

{------------------------------------------------------}

procedure TfrmContainer.SpeedButton12Click(Sender: TObject);
begin
  with EasyEdit1.EditSource do
    ToggleLineStyle(CurrentPosition.Y, 0);
end;

{------------------------------------------------------}

procedure TfrmContainer.chbWordWrapClick(Sender: TObject);
begin
   EasyEdit2.WordWrap := chbWordWrap.Checked;
end;

{------------------------------------------------------}

procedure TfrmContainer.chbWrapAtMarginClick(Sender: TObject);
begin
  with EasyEdit2 do
    if chbWrapAtMargin.Checked and chbWordWrap.Checked then
      Options := Options +[eoBreakWordsAtMargin]
    else
      Options := Options -[eoBreakWordsAtMargin];
end;

{------------------------------------------------------}

procedure TfrmContainer.chbUseTabCharacterClick(Sender: TObject);
begin
  with EasyEdit2.EditSource do
    if chbUseTabCharacter.Checked then
      Options := Options + [srUseTab]
    else
      Options := Options - [srUseTab];
end;

{------------------------------------------------------}

procedure TfrmContainer.chbCursorThroughTabsClick(Sender: TObject);
begin
  with EasyEdit2.EditSource do
    if chbCursorThroughTabs.Checked then
      Options := Options + [srCursorThroughTabs]
    else
      Options := Options - [srCursorThroughTabs];
end;

{------------------------------------------------------}

procedure TfrmContainer.cbBackgroundOptionsChange(Sender: TObject);
begin
  with EasyEdit4.Background do
    Option := TEasyBackgroundOption(cbBackgroundOptions.ItemIndex);
end;

{------------------------------------------------------}

procedure TfrmContainer.cbBeginColorStyleChange(Sender: TObject);
begin
  with EasyEdit4.Background do
    GradientStartColor := cbBeginColorStyle.SelectedColor;
end;

{------------------------------------------------------}

procedure TfrmContainer.cbEndColorStyleChange(Sender: TObject);
begin
  with EasyEdit4.Background do
    GradientEndColor := cbEndColorStyle.SelectedColor;
end;

{------------------------------------------------------}

procedure TfrmContainer.cbGutterOptionsChange(Sender: TObject);
begin
  with EasyEdit4.Gutter.Background do
    Option := TEasyBackgroundOption(cbGutterOptions.ItemIndex);
end;

{------------------------------------------------------}

procedure TfrmContainer.ComboBox1Change(Sender: TObject);
begin
  case ComboBox1.ItemIndex of
    0 : EasyEdit8.PageType := ptNormal;
    1 : begin
          EasyEdit8.PageType := ptPageBreaks;
        end;
    2 : begin
          EasyEdit8.PageType := ptPageLayout;
        end;
   end;
end;

{------------------------------------------------------}

procedure TfrmContainer.cbColorMappingChange(Sender: TObject);
begin
  case cbColorMapping.ItemIndex of
    0 : EasyEditorParser3.ColorMapping := cmClassic;
    1 : EasyEditorParser3.ColorMapping := cmDefault;
    2 : EasyEditorParser3.ColorMapping := cmOcean;
    3 : EasyEditorParser3.ColorMapping := cmTwilight;
    4 : EasyEditorParser3.ColorMapping := cmVisualStudio;
    5 : EasyEditorParser3.ColorMapping := cmVisualStudioNET;
  end;
end;

{------------------------------------------------------}

procedure TfrmContainer.chbActiveClick(Sender: TObject);
begin
  Table1.Active := chbActive.Checked;
end;

{------------------------------------------------------}

procedure TfrmContainer.chbAutoDisplayClick(Sender: TObject);
begin
  EasyDBEdit1.AutoDisplay := chbAutoDisplay.Checked;
  DBMemo1.AutoDisplay := chbAutoDisplay.Checked;
end;

{------------------------------------------------------}

procedure TfrmContainer.chbReadOnlyClick(Sender: TObject);
begin
  EasyDBEdit1.ReadOnly := chbReadOnly.Checked;
  DBMemo1.ReadOnly := chbReadOnly.Checked;
end;

{------------------------------------------------------}

procedure TfrmContainer.Label30Click(Sender: TObject);
begin
  JumpToURL('www.dream-com.com/download.html');
end;

{------------------------------------------------------}

procedure TfrmContainer.Label29Click(Sender: TObject);
begin
  JumpToURL(Label29.Caption);
end;

{------------------------------------------------------}

procedure TfrmContainer.Label31Click(Sender: TObject);
begin
  JumpToURL('www.dream-com.com/download.html');
end;

{------------------------------------------------------}

procedure TfrmContainer.Label10Click(Sender: TObject);
begin
  JumpToURL(Label10.Caption);
end;

{------------------------------------------------------}

procedure TfrmContainer.Label11Click(Sender: TObject);
begin
    JumpToURL('mailto:'+Label11.Caption);
end;

{------------------------------------------------------}

procedure TfrmContainer.FormDestroy(Sender: TObject);
begin
  EasyEdit7.EditSource := nil;
  EasyEdit6.EditSource := nil;
end;

{------------------------------------------------------}

procedure TfrmContainer.cbBeginColorStyleGutterChange(Sender: TObject);
begin
  with EasyEdit4.Gutter.Background do
    GradientStartColor := cbBeginColorStyleGutter.SelectedColor;
end;

{------------------------------------------------------}

procedure TfrmContainer.cbEndColorStyleGutterChange(Sender: TObject);
begin
  with EasyEdit4.Gutter.Background do
    GradientEndColor := cbEndColorStyleGutter.SelectedColor;
end;

{------------------------------------------------------}

procedure TfrmContainer.btLoadClick(Sender: TObject);
begin
  if OpenDialog1.Execute then
    EasyEdit5.Lines.LoadFromFile(OpenDialog1.FileName);
end;

{------------------------------------------------------}

procedure TfrmContainer.btSaveClick(Sender: TObject);
begin
  if SaveDialog1.Execute then
  begin
    EasyEdit5.EditSource.SaveToFile(SaveDialog1.FileName);
    UpdateModified;
  end;
end;

{------------------------------------------------------}

procedure TfrmContainer.EasyEdit1WordSpell(Sender: TObject;
  const s: String; var Correct: Boolean);
begin
   Correct := false;
end;

{------------------------------------------------------}

procedure TfrmContainer.EasyEdit3AutoComplete(Sender: TObject;
  Strings: TStrings; AKey: Char; var AllowPopup: Boolean);
const
  tstring = 1;
begin
  AllowPopup := (AKey = '.');
  with EasyEdit3 do
    AllowPopup := AllowPopup and (Lines.GetData(CurrentPosition.Y, CurrentPosition.X + 1) <> tstring);
  if AllowPopup then
    FillCodeCompletion(EasyEdit3, Strings);
end;

{------------------------------------------------------}

procedure TfrmContainer.EasyEdit3DisplayHint(Sender: TObject;
  var s: String; AKey: Char; var AllowPopup: Boolean);
begin
  AllowPopup := AKey = '=';
  if AllowPopup then
    s := Format(sPropStr, ['Sample prop', 'sample type']);

end;

{------------------------------------------------------}

procedure TfrmContainer.EasyEdit3BeforeInsertPopup(Sender: TObject;
  var s: String);
var
  P : integer;
begin
  P := Pos('|', s);
  if (P = 0) or (FindPos('|', s, P + 1) = 0) then
    Exit;
  Delete(s, 1, P);
  P := Pos('|', s);
  if P <> 0 then
    Delete(s, P, MaxInt);
  s := Trim(s);

end;

{------------------------------------------------------}

procedure TfrmContainer.btnRtfClick(Sender: TObject);
begin

⌨️ 快捷键说明

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