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

📄 fmain.pas

📁 Delphi编写的一个支持语法高亮显示和很多语言的文本编辑器
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  CanDock := (DockClient.Tag = 1);
end;

procedure TfrmMain.mxPluginNewAction(Sender: TObject; Name: String; Image,
  HotImage, DisabledImage: TBitmap; Caption: String; Enabled,
  Checked: Boolean; Hint: String; ShortCut: TShortCut;
  OnAction: TNotifyEvent);
var
  aItem: TMenuItem;
begin
  aItem := TMenuItem.Create(Plugins1);
  aItem.Caption := Caption;
  aItem.OnClick := OnAction;
  aItem.ImageIndex := 61;
  Plugins1.Add(aItem);
  xp.ActivateMenuItem(aItem, false);
end;

procedure TfrmMain.mnuTileHorClick(Sender: TObject);
begin
  TileMode := tbHorizontal;
  Tile
end;

procedure TfrmMain.mnuTileVerClick(Sender: TObject);
begin
  TileMode := tbVertical;
  Tile
end;

procedure TfrmMain.mnuArrangeClick(Sender: TObject);
begin
  ArrangeIcons;
end;

procedure TfrmMain.mnuCascadeClick(Sender: TObject);
begin
  Cascade;
end;

procedure TfrmMain.mnuLinksClick(Sender: TObject);
begin
  dmMain.ClickLink(strLinks[(Sender as TMEnuItem).Tag]);
end;

procedure TfrmMain.pgTopDockDrop(Sender: TObject; Source: TDragDockObject;
  X, Y: Integer);
begin
  pgTop.ActivePage.Caption := (Source.Control as TToolbar).Caption;
  pgTop.ActivePage.Font.Name := 'Ms Sans Serif';
  pgTop.ActivePage.Font.Size := 8;
  (Source.Control as TToolbar).Indent := 13
end;

procedure TfrmMain.cntrlTopBandMove(Sender: TObject; Control: TControl;
  var ARect: TRect);
var
  i, iLowLeft: Integer;
begin
  if (cntrlTop.Width - Arect.Left) < 150 then aRect.Left := (cntrlTop.Width - 150);
  if (Control = pnlPage) then begin
    With Arect do begin
      Right := cntrlTop.ClientWidth; //-2;
      Bottom := pnlPage.Height + pnlPage.Top;
    end;
  end;
{  if (Co ntrol = pnlMDITabs) then begin
    With Arect do begin
      Right := ctrlTab.ClientWidth ;
      Bottom := pnlMDITabs.Height + pnlMDITabs.Top;
    end;
  end;}
end;

procedure TfrmMain.dpLeftGetSiteInfo(Sender: TObject; DockClient: TControl;
  var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean);
begin
  if CanDock = true then
    CanDock := (DockClient.Tag <> 1) and (DockClient.Tag <> 2);
end;

procedure TfrmMain.dpBottomGetSiteInfo(Sender: TObject;
  DockClient: TControl; var InfluenceRect: TRect; MousePos: TPoint;
  var CanDock: Boolean);
begin
  if CanDock = true then
    CanDock := (DockClient.Tag <> 1) and (DockClient.Tag <> 2);
end;

procedure TfrmMain.dpRightGetSiteInfo(Sender: TObject;
  DockClient: TControl; var InfluenceRect: TRect; MousePos: TPoint;
  var CanDock: Boolean);
begin
  if CanDock = true then
    CanDock := (DockClient.Tag <> 1) and (DockClient.Tag <> 2);
end;

procedure TfrmMain.dpTopGetSiteInfo(Sender: TObject; DockClient: TControl;
  var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean);
begin
  if CanDock = true then
    CanDock := (DockClient.Tag <> 1) and (DockClient.Tag <> 2);
end;

procedure TfrmMain.pgTopGetSiteInfo(Sender: TObject; DockClient: TControl;
  var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean);
begin
  CanDock := DockClient.HostDockSite <> pgTop;
  if CanDock = true then
    CanDock := DockClient.Tag = 1;
end;

procedure TfrmMain.cntrlTopGetSiteInfo(Sender: TObject;
  DockClient: TControl; var InfluenceRect: TRect; MousePos: TPoint;
  var CanDock: Boolean);
begin
  CanDock := DockClient.HostDockSite <> pgTop;
  if CanDock = true then
    CanDock := DockClient.Tag = 1;
end;

procedure TfrmMain.BuildSettings1Click(Sender: TObject);
var
  frmCompiler: TfrmCompiler;
begin
  frmCompiler := TfrmCompiler.create(self);
  frmCompiler.ShowModal;
end;

procedure TfrmMain.cmbURLKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = Char(13) then begin
    dmMain.Clicklink(cmbURl.Text);
    cmbURL.Items.Add(cmbURL.Text);
  end;
end;

procedure TfrmMain.cmbURLClick(Sender: TObject);
begin
  dmMain.Clicklink(String(cmbURl.Text))
end;

procedure TfrmMain.tbbHomeClick(Sender: TObject);
begin
  dmMain.ClickLink('http://cedit.sourceforge.net');
end;

procedure TfrmMain.tbbSearchClick(Sender: TObject);
begin
  dmMain.ClickLink('http://cedit.sourceforge.net');
end;

procedure TfrmMain.tbbReloadClick(Sender: TObject);
begin
  if dmMain.SelWeb <> nil then
    dmMain.SelWeb.www.Refresh;
end;

procedure TfrmMain.tbbForwardClick(Sender: TObject);
begin
  if dmMain.SelWeb <> nil then
    dmMain.SelWeb.www.GoForward;
end;

procedure TfrmMain.tbbBackClick(Sender: TObject);
begin
  if dmMain.SelWeb <> nil then
    dmMain.SelWeb.www.GoBack;
end;

procedure TfrmMain.tbbStopClick(Sender: TObject);
begin
  if dmMain.SelWeb <> nil then
    dmMain.SelWeb.www.Stop;
end;

procedure TfrmMain.ileHorizontally1Click(Sender: TObject);
begin
  TileMode := tbHorizontal;
  Tile;
end;

procedure TfrmMain.ileVerticly1Click(Sender: TObject);
begin
  TileMode := tbVertical;
  Tile;
end;

procedure TfrmMain.ArrangeIcons1Click(Sender: TObject);
begin
  ArrangeIcons;
end;

procedure TfrmMain.Cascade1Click(Sender: TObject);
begin
  Cascade;
end;

procedure TfrmMain.Readme1Click(Sender: TObject);
begin
//  dmMain.NewDoc(ExtractFilePath(Application.ExeName) + 'Readme.txt');
  dmMain.ClickLink(ExtractFilePath(Application.ExeName) + 'readme\home.htm');
end;

procedure TfrmMain.CommentLine1Click(Sender: TObject);
var
  tmp,ret: STring;
  txt: PChar;
  selStartLine, selectionStart, selectionEnd, selEndLine, i: Integer;
begin
  if dmMain.SelDoc = nil then exit;
  with dmMain.SelDoc do begin
{    selectionStart := sciMain.GetSelectionStart;
    selectionEnd := sciMain.GetSelectionEnd;
    selStartLine := sciMain.LineFromPosition(selectionStart);
    selEndLine := sciMain.LineFromPosition(selectionEnd);
    for i := selStartLine to selEndLine do begin
      sciMain.GetLine(i-1, txt);
      tmp := AnsiReplaceText(cString, '%d', txt);
      ret := PChar(ret + tmp);
      if i <> selEndLine then ret := ret + #10;
      sciMain.LineDelete;
    end;
//    sciMain.Clear;
    sciMain.AddText(Length(ret), PChar(ret));}
  end;
end;

procedure TfrmMain.UncommentBlock1Click(Sender: TObject);
var
  tmp,ret, strStart, strEnd: STring;
  txt: PChar;
  selStartLine, selectionStart, iPos, selectionEnd, selEndLine, i: Integer;
begin
  if dmMain.SelDoc = nil then exit;

  with dmMain.SelDoc do begin
    iPos := Pos('%d', cString);
    strStart := LeftStr(cString, iPos-1);
    strEnd := RightStr(cString, Length(cString)-ipos-1);
{    selectionStart := sciMain.GetSelectionStart;
    selectionEnd := sciMain.GetSelectionEnd;
    selStartLine := sciMain.LineFromPosition(selectionStart);
    selEndLine := sciMain.LineFromPosition(selectionEnd);
    for i := selStartLine to selEndLine do begin
      sciMain.GetLine(i-1, txt);
      tmp := AnsiReplaceText(txt, strStart, '');
      ret := ret + AnsiReplaceText(tmp, strEnd, '');
      sciMain.LineDelete;
      if i <> selEndLine then ret := ret + #10;
    end;
    sciMain.AddText(Length(ret), PChar(ret));}
  end;
end;

procedure TfrmMain.tbbCommentBlockClick(Sender: TObject);
var
  i,b,c: Integer;
  p: PChar;
  s: String;
begin
  //CommentLine1Click(nil);
  if dmMain.SelDoc = nil then exit;
  if dmMain.SelDoc.sciMain.Highlighter = nil then exit;
  if dmMain.SelDoc.sciMain.Highlighter.CommentVar = '' then exit;
  b := dmMain.SelDoc.sciMain.SelStart;
  p := PChar(dmMain.SelDoc.sciMain.SelText);
  s := s + dmMain.SelDoc.sciMain.Highlighter.CommentVar + '~    ';
  for i := 0 to StrLen(p)-1 do begin
    if (ord(p[i]) <> 10) and (ord(p[i]) <> 13) then
      s := s + p[i];
    if ord(p[i]) = 13 then begin
      s := s + chr(10);
      s := s + dmMain.SelDoc.sciMain.Highlighter.CommentVar + '~    ';

    end;
  end;
  dmMain.SelDoc.scimain.SelText := s; 
  c := dmMain.SelDoc.sciMain.SelStart;
  dmMain.SelDoc.scimain.SelStart := b;
  dmMain.SelDoc.scimain.SelEnd := c;

end;

procedure TfrmMain.tbbUncommentLineClick(Sender: TObject);
var
  CommentString: String;
  p: String;
  b, c: Integer;
begin
  if dmMain.SelDoc = nil then exit;
  if dmMain.SelDoc.sciMain.Highlighter = nil then exit;
  if dmMain.SelDoc.sciMain.Highlighter.CommentVar = '' then exit;
  b := dmMain.seldoc.sciMain.SelStart;
  p := PChar(dmMain.SelDoc.sciMain.SelText);
  CommentString := dmMain.SelDoc.sciMain.Highlighter.CommentVar + '~    ';
  p := AnsiReplaceText(p, CommentString, '');
  dmMain.SelDoc.sciMain.Seltext := p;
  c := dmMain.SelDoc.sciMain.SelStart;
  dmMain.SelDoc.scimain.SelStart := b;
  dmMain.SelDoc.scimain.SelEnd := c;
end;

procedure TfrmMain.DateTime1Click(Sender: TObject);
begin
  if dmMain.SelDoc <> nil then begin
    dmMain.SelDoc.sciMain.SelText := TimeToStr(Time) + ' ' + DateToStr(Date);
  end;
end;

procedure TfrmMain.ClearBookmarks1Click(Sender: TObject);
var
  i: Integer;
begin
  if dmMain.SelDoc <> nil then begin
    for i := 0 to 9 do BEGIN
      dmMain.selDoc.sciMain.ClearBookMark(i);
    END;
    With dmMain.selDoc.sciMain do begin
      dmMain.actToggle0.Checked := IsBookmark(0);
      dmMain.actToggle1.Checked := IsBookmark(1);
      dmMain.actToggle2.Checked := IsBookmark(2);
      dmMain.actToggle3.Checked := IsBookmark(3);
      dmMain.actToggle4.Checked := IsBookmark(4);
      dmMain.actToggle5.Checked := IsBookmark(5);
      dmMain.actToggle6.Checked := IsBookmark(6);
      dmMain.actToggle7.Checked := IsBookmark(7);
      dmMain.actToggle8.Checked := IsBookmark(8);
      dmMain.actToggle9.Checked := IsBookmark(9);
      oggleBookmark1.Checked := False;
      oggleBookmark2.Checked := False;
      oggleBookmark3.Checked := False;
      oggleBookmark4.Checked := False;
      oggleBookmark5.Checked := False;
      oggleBookmark6.Checked := False;
      oggleBookmark7.Checked := False;
      oggleBookmark8.Checked := False;
      oggleBookmark9.Checked := False;
      oggleBookmark10.Checked := False;

    end;
  end;
end;

procedure TfrmMain.tbbClearBookmarksClick(Sender: TObject);
begin
  Clearbookmarks1click(nil);
end;

procedure TfrmMain.ShowResults1Click(Sender: TObject);
begin
  FindInFiles2.Checked := true;
  Grep.Visible := True;
end;

procedure TfrmMain.OpenFromInternet1Click(Sender: TObject);
begin
  //if frmOpenWeb = nil then frmOpenWeb := TfrmOpenWeb.Create(nil);
  With TfrmOpenWeb.Create(nil) do begin
    ShowModal;
  end;
end;

procedure TfrmMain.pgClientChange(Sender: TObject);
begin
  if dmMain.SelDoc <> nil then dmMain.SelDoc.sciMain.SetFocus;
end;

procedure TfrmMain.ctrlTabBandMove(Sender: TObject; Control: TControl;
  var ARect: TRect);
begin
{  if (Control = pnlMDITabs) then begin
    With Arect do begin
      Right := ctrlTab.ClientWidth ;
      Bottom := pnlMDITabs.Height + pnlMDITabs.Top;
    end;
  end;}
end;

procedure TfrmMain.tcFilesGetImageIndex(Sender: TObject; TabIndex: Integer;
  var ImageIndex: Integer);
begin
  ImageIndex := 0;
end;

procedure TfrmMain.ctrlTabGetSiteInfo(Sender: TObject;
  DockClient: TControl; var InfluenceRect: TRect; MousePos: TPoint;
  var CanDock: Boolean);
begin
  CanDock := (DockClient.Tag = 2);
end;

procedure TfrmMain.tcFilesDrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
  Offset: integer;
  fDoc: TfrmDoc;
  rc: TRect;
  tw: integer;
  MaxWidth: integer

⌨️ 快捷键说明

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