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

📄 fmain.pas

📁 Delphi编写的一个支持语法高亮显示和很多语言的文本编辑器
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    procedure mnuArrangeClick(Sender: TObject);
    procedure AppIdle(Sender: TObject; var Done: Boolean);        
    procedure mnuCascadeClick(Sender: TObject);
    procedure mnuLinksClick(Sender: TObject);
    procedure pgTopDockDrop(Sender: TObject; Source: TDragDockObject; X,
      Y: Integer);
    procedure cntrlTopBandMove(Sender: TObject; Control: TControl;
      var ARect: TRect);
    procedure dpLeftGetSiteInfo(Sender: TObject; DockClient: TControl;
      var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean);
    procedure dpBottomGetSiteInfo(Sender: TObject; DockClient: TControl;
      var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean);
    procedure dpRightGetSiteInfo(Sender: TObject; DockClient: TControl;
      var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean);
    procedure dpTopGetSiteInfo(Sender: TObject; DockClient: TControl;
      var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean);
    procedure pgTopGetSiteInfo(Sender: TObject; DockClient: TControl;
      var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean);
    procedure cntrlTopGetSiteInfo(Sender: TObject; DockClient: TControl;
      var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean);
    procedure BuildSettings1Click(Sender: TObject);
    procedure cmbURLKeyPress(Sender: TObject; var Key: Char);
    procedure cmbURLClick(Sender: TObject);
    procedure tbbHomeClick(Sender: TObject);
    procedure tbbSearchClick(Sender: TObject);
    procedure tbbReloadClick(Sender: TObject);
    procedure tbbForwardClick(Sender: TObject);
    procedure tbbBackClick(Sender: TObject);
    procedure tbbStopClick(Sender: TObject);
    procedure ileHorizontally1Click(Sender: TObject);
    procedure ileVerticly1Click(Sender: TObject);
    procedure ArrangeIcons1Click(Sender: TObject);
    procedure Cascade1Click(Sender: TObject);
    procedure Readme1Click(Sender: TObject);
    procedure CommentLine1Click(Sender: TObject);
    procedure UncommentBlock1Click(Sender: TObject);
    procedure tbbCommentBlockClick(Sender: TObject);
    procedure tbbUncommentLineClick(Sender: TObject);
    procedure DateTime1Click(Sender: TObject);
    procedure ClearBookmarks1Click(Sender: TObject);
    procedure tbbClearBookmarksClick(Sender: TObject);
    procedure ShowResults1Click(Sender: TObject);
    procedure OpenFromInternet1Click(Sender: TObject);
    procedure pgClientChange(Sender: TObject);
    procedure ctrlTabBandMove(Sender: TObject; Control: TControl;
      var ARect: TRect);
    procedure tcFilesGetImageIndex(Sender: TObject; TabIndex: Integer;
      var ImageIndex: Integer);
    procedure ctrlTabGetSiteInfo(Sender: TObject; DockClient: TControl;
      var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean);
    procedure tcFilesDrawTab(Control: TCustomTabControl; TabIndex: Integer;
      const Rect: TRect; Active: Boolean);
    procedure Tools1Click(Sender: TObject);
    procedure GotoBookmark91Click(Sender: TObject);
    procedure Modified1Click(Sender: TObject);
    procedure Readonly1Click(Sender: TObject);
    procedure MDITabbedView1Click(Sender: TObject);
    procedure tbWebResize(Sender: TObject);
    procedure tbbMacRecClick(Sender: TObject);
    procedure tbbOpenFromWebClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure QuickTags1Click(Sender: TObject);
    procedure ProjectView1Click(Sender: TObject);
    procedure SnippetsView1Click(Sender: TObject);
    procedure DebugOutput2Click(Sender: TObject);
    procedure FindInFiles2Click(Sender: TObject);
    procedure tbbMac1Click(Sender: TObject);
    procedure AppendCopy1Click(Sender: TObject);
    procedure OpenProject1Click(Sender: TObject);
    procedure GotoB9Click(Sender: TObject);
    procedure File2Click(Sender: TObject);
    procedure SaveProject1Click(Sender: TObject);
    procedure Folder1Click(Sender: TObject);
    procedure Hyperlink1Click(Sender: TObject);
    procedure EmailAddress1Click(Sender: TObject);
    procedure FormShortCut(var Msg: TWMKey; var Handled: Boolean);
    procedure tbLangResize(Sender: TObject);
    procedure cntrlTopBandPaint(Sender: TObject; Control: TControl;
      Canvas: TCanvas; var ARect: TRect; var Options: TBandPaintOptions);
    procedure cntrlTopBandInfo(Sender: TObject; Control: TControl;
      var Insets: TRect; var PreferredSize, RowCount: Integer);
    procedure cntrlTopMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure ClickLang(Sender: TObject);
    procedure tbWebAdvancedCustomDraw(Sender: TToolBar; const ARect: TRect;
      Stage: TCustomDrawStage; var DefaultDraw: Boolean);
    procedure tbWebEndDock(Sender, Target: TObject; X, Y: Integer);
    procedure ctrlTabBandPaint(Sender: TObject; Control: TControl;
      Canvas: TCanvas; var ARect: TRect; var Options: TBandPaintOptions);
    procedure ctrlTabBandInfo(Sender: TObject; Control: TControl;
      var Insets: TRect; var PreferredSize, RowCount: Integer);
    procedure FormResize(Sender: TObject);
    procedure ctrlTabMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure KeyboardMap1Click(Sender: TObject);
    procedure tbSearchResize(Sender: TObject);
    procedure tbSearchAdvancedCustomDraw(Sender: TToolBar;
      const ARect: TRect; Stage: TCustomDrawStage;
      var DefaultDraw: Boolean);
    procedure cmbFindKeyPress(Sender: TObject; var Key: Char);
    procedure Main1Click(Sender: TObject);
    procedure Standard1Click(Sender: TObject);
    procedure Editor1Click(Sender: TObject);
    procedure Web1Click(Sender: TObject);
    procedure Search2Click(Sender: TObject);
    procedure Macro1Click(Sender: TObject);
    procedure ools1Click(Sender: TObject);
    procedure oolPalette1Click(Sender: TObject);
    procedure FileView1Click(Sender: TObject);
    procedure cEditWebsite1Click(Sender: TObject);
    procedure NewProject1Click(Sender: TObject);
    procedure SaveProjectAs1Click(Sender: TObject);
    procedure RemoveItem1Click(Sender: TObject);
    procedure tcFilesChange(Sender: TObject);
    procedure tbbPrevLineClick(Sender: TObject);
    procedure tbbNextLineClick(Sender: TObject);
    procedure InsertfromFile1Click(Sender: TObject);
    procedure abbedView1Click(Sender: TObject);
    procedure StatusBar1Click(Sender: TObject);
    procedure EditAccounts1Click(Sender: TObject);
    procedure RegMruItemClick(Sender: TObject; MenuItem: TMenuItem;
      const FileName: String; var CanDelete: Boolean);
    procedure NextLine1Click(Sender: TObject);
    procedure PreviousLine1Click(Sender: TObject);
    procedure FileDrag1Drop(Sender: TObject);
    procedure PrintPreview1Click(Sender: TObject);
    procedure Print1Click(Sender: TObject);
    procedure tbrMainCustomDrawButton(Sender: TToolBar;
      Button: TToolButton; State: TCustomDrawState;
      var DefaultDraw: Boolean);
    procedure pgTopChange(Sender: TObject);
    procedure Unix1Click(Sender: TObject);
    procedure Macintosh1Click(Sender: TObject);
    procedure tbbHelpClick(Sender: TObject);
    procedure Index1Click(Sender: TObject);
    procedure HelpOnline1Click(Sender: TObject);
    procedure DownloadLanguageFiles1Click(Sender: TObject);
    procedure QuickFTP1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure DownloadPlugins1Click(Sender: TObject);
    procedure DeleteExtraLines1Click(Sender: TObject);
    procedure MRUItemClick(Sender: TObject; MenuItem: TMenuItem;
      const FileName: String; var CanDelete: Boolean);
    procedure File1Click(Sender: TObject);
    procedure MinimizeAll1Click(Sender: TObject);
    procedure MaximizeAll1Click(Sender: TObject);
    procedure RestoreAll1Click(Sender: TObject);
    procedure Window1Click(Sender: TObject);
    procedure pManagerNewCommand(Sender: TObject; ACaption, AHint,
      AData: String; ABitmap: TBitmap; AEvent: TNotifyEvent);

  private
    BandMouseX, BandMouseY: integer;
    PluginInit       : tPluginInit;
    PlgMsgNum        : tPlgMsgNum;
    PlgStrResult     : tStrResult;

    Loading: Boolean;
    m_ws: TWindowState;
    sFilter: String;
    strLinks: TStringList;
    projFilename: String;
    strProject: TStringList;
    fHighlighters: TStringList;
    iNonMaxWidth, iNonMaxHeight, iNonMaxLeft, iNonMaxTop: Integer;
    { Private declarations }
    function HH(Command: Word; Data: Integer; var CallHelp: Boolean): Boolean;
    procedure CheckPlugins;    
    procedure ActivationFromOtherInstance;
    procedure WriteToolbarState(aIniFile: TIniFile; Control: TControl; Section: string);
    procedure tlbrClose(Sender: TObject; var Action: TCloseAction);
    function ReadToolbarState(aIniFile: TIniFile; Control: TControl; Section: string;  DockHosts: array of TWinControl; ManualDock: boolean): boolean;
    procedure CheckMenuBar;
    procedure SaveToolbar;
    procedure OpenToolbar;
    procedure DoRefresh(Sender: TObject);
    procedure WriteSettings;
    procedure ReadSettings;
    procedure LoadSettings;
    procedure LoadOptions;
//    procedure SaveDesktop(sDesktopName: String);

//    function LoadDesktop(sDesktopName: String): Boolean;
  public
    Grep            : tfrmGrepResults;
    Plugins         : TPlugins;
    PluginMenuItems : tList;
    MsgNum          : Integer;
      frmOutput: TfrmOutput;
        { Public declarations }
    OW: TWndMethod;
    procedure NW(var M: TMessage);
    function GetVisibleDockClientCount(win: TWinControl): Integer;
    function NewFTP(FileName: String; FTPName: String; FTPDir: String): TfrmDoc;
    function CloseQuery: boolean; override;
    function ChildFromFileName(sFileName: String): TfrmDoc;
    procedure DrawTheText(Sender: TObject; txt, ShortCuttext: string;
    ACanvas: TCanvas; TextRect: TRect;
    Selected, Enabled, Default, TopMenu, IsRightToLeft: boolean;
    var TxtFont: TFont; TextFormat: integer);
    procedure OpenProject(sFileName: String);
    procedure SaveProject(sFileName: String);
    procedure LoadTools;
    procedure CustomAlignPosition(Control: TControl; var NewLeft: Integer;
      var NewTop: Integer; var NewWidth: Integer; var NewHeight: Integer;
      var AlignRect: TRect; AlignInfo: TAlignInfo); override;

//    procedure RedrawHostingPageControls;
    function GetCurrentEditor: TfrmDoc;
  end;
  TgbToolDockForm = class(TToolDockForm)
  public
    property OnClose;
  end;

var
  frmMain: TfrmMain;
  StopSearch: Boolean;
Const
 GrepKey    = 'Software\cEdit\Grep';

implementation

{$R *.dfm}

uses fOptions, fFiles, fFTP, fTags, fFind, fUpload,fProjects, fSnippets, fCompiler,
  fFindText, fSaveDlg, fSaveMacroDialog, uHighlighterProcs, dMain, fGoto, fReplace, GrepSearchDlg, fOpenWeb, fImage, uOptVars,
  Registry, dlgKeyboardMap, SynEditTypes, SynSpellCheck,
  fWeb, fAccount, fQuickFTP, fDownloadLanguage, fDownloadPlugins;

var

  frmTags: TfrmTags;
  frmSnippets: TfrmSnippets;
  frmProjects: TfrmProjects;
  frmQuickFTP: TfrmQuickFTP;
  frmFind: TfrmFind;
  frmFiles: TfrmFiles;
  fRep: TfrmReplace;


function TfrmMain.GetCurrentEditor: TfrmDoc;
Begin
  Result := nil;
  if Assigned(frmMain.ActiveMDIChild) Then
     Result := TfrmDoc(frmMain.ActiveMDIChild);
end;

procedure TfrmMain.DrawTheText(Sender: TObject; txt, ShortCuttext: string;
    ACanvas: TCanvas; TextRect: TRect;
    Selected, Enabled, Default, TopMenu, IsRightToLeft: boolean;
    var TxtFont: TFont; TextFormat: integer);
var
  DefColor: TColor;
  B: TBitmap;
  BRect: TRect;
begin
  TextFormat := TextFormat + DT_EXPANDTABS;
  DefColor := TxtFont.Color;

  ACanvas.Font.Assign (TxtFont);

  if Selected then
    DefColor := clBlack;

  If not Enabled then
  begin
    DefColor := clGray;

    if (Sender is TToolButton) then
    begin
      TextRect.Top := TextRect.Top +
        ((TextRect.Bottom - TextRect.Top) - ACanvas.TextHeight('W')) div 2;
      B := TBitmap.Create;
      try
        B.Width := TextRect.Right - TextRect.Left;
        B.Height := TextRect.Bottom - TextRect.Top;
        BRect := Rect(0,0,B.Width, B.Height);


        B.Canvas.Brush.Color := ACanvas.Brush.Color;
        B.Canvas.FillRect (BRect);
  //      B.Canvas.Font := FFont; //felix added for resolving font problems in Win98
                                //27.08
        B.Canvas.Font.color := DefColor;

        DrawtextEx(B.Canvas.Handle,
          PChar(txt),
          Length(txt),
          BRect, TextFormat + DT_VCENTER, nil);
        ACanvas.CopyRect(TextRect, B.Canvas, BRect);
      finally
        B.Free;
      end;
      exit;
    end;

  end;


  ACanvas.Font.color := DefColor;    // will not affect Buttons

  SetBkMode(ACanvas.Handle, TRANSPARENT);


  if Default and Enabled then
  begin

    Inc(TextRect.Left, 1);
    ACanvas.Font.color := GetShadeColor(ACanvas,
                              ACanvas.Pixels[TextRect.Left, TextRect.Top], 30);
    DrawtextEx(ACanvas.Handle,
      PChar(txt),
      Length(txt),
      TextRect, TextFormat, nil);
    Dec(TextRect.Left, 1);


    Inc(TextRect.Top, 2);
    Inc(TextRect.Left, 1);
    Inc(TextRect.Right, 1);


    ACanvas.Font.color := GetShadeColor(ACanvas,
                              ACanvas.Pixels[TextRect.Left, TextRect.Top], 30);
    DrawtextEx(ACanvas.Handle,
      PChar(txt),
      Length(txt),
      TextRect, TextFormat, nil);


    Dec(TextRect.Top, 1);
    Dec(TextRect.Left, 1);
    Dec(TextRect.Right, 1);

    ACanvas.Font.color := GetShadeColor(ACanvas,
                              ACanvas.Pixels[TextRect.Left, TextRect.Top], 40);
    DrawtextEx(ACanvas.Handle,
      PChar(txt),
      Length(txt),
      TextRect, TextFormat, nil);


    Inc(TextRect.Left, 1);
    Inc(TextRect.Right, 1);

    ACanvas.Font.color := GetShadeColor(ACanvas,
                              ACanvas.Pixels[TextRect.Left, TextRect.Top], 60);
    DrawtextEx(ACanvas.Handle,
      PChar(txt),
      Length(txt),
      TextRect, TextFormat, nil);

    Dec(TextRect.Left, 1);
    Dec(TextRect.Right, 1);
    Dec(TextRect.Top, 1);

    ACanvas.Font.color := DefColor;
  end;

  DrawtextEx(ACanvas.Handle,
      PChar(txt),
      Length(txt),
      TextRect, TextFormat, nil);


  txt := ShortCutText + ' ';
  {
  if not Is16Bit then
    ACanvas.Font.color := DefColor
  else
    ACanvas.Font.color := GetShadeColor(ACanvas, DefColor, -40);
  }


  if IsRightToLeft then
  begin
    Inc(TextRect.Left, 10);
    TextFormat := DT_LEFT
  end
  else
  begin
    Dec(TextRect.Right, 10);
    TextFormat := DT_RIGHT;
  end;


  DrawtextEx(ACanvas.Handle,
    PChar(txt),
    Length(txt),
    TextRect, TextFormat, nil);

end;
type
 // used to access protected methods
 THackPageControl = class(TPageControl)
 end;
procedure DrawEclTab(Canvas: TCanvas; R: TRect; S: String);
const
 D = 5;
var
 H: HRgn;

⌨️ 快捷键说明

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