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

📄 upasfileeditform.pas

📁 Delphi函数工厂。。。。。。。。。。。。。
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit uPasFileEditForm;

interface
uses
  Windows, Messages, SysUtils, Variants, Classes,  Controls, Forms,
  Dialogs, Menus, SynEditHighlighter, SynHighlighterPas, SynEditExport,
  SynExportHTML, SynEdit, SynMemo, ComCtrls, ImgList, ToolWin, ActnList,
  StdCtrls, StdActns, SynEditMiscClasses, SynEditSearch, SynEditTypes,
  SynEditPrint, Shellapi, uFormEffect,IniFiles, Registry;
type
  TPasFileEditForm = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    N19: TMenuItem;
    N20: TMenuItem;
    N21: TMenuItem;
    N22: TMenuItem;
    N24: TMenuItem;
    N25: TMenuItem;
    N23: TMenuItem;
    N27: TMenuItem;
    N29: TMenuItem;
    N30: TMenuItem;
    CoolBar1: TCoolBar;
    ImageList1: TImageList;
    SynExporterHTML1: TSynExporterHTML;
    SynPasSyn: TSynPasSyn;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ToolButton11: TToolButton;
    ToolButton12: TToolButton;
    ToolButton13: TToolButton;
    ToolButton16: TToolButton;
    ToolButton17: TToolButton;
    ToolButton18: TToolButton;
    ToolButton19: TToolButton;
    ToolButton20: TToolButton;
    ToolButton8: TToolButton;
    ToolButton21: TToolButton;
    ToolButton23: TToolButton;
    ActionList1: TActionList;
    new: TAction;
    open: TAction;
    saveas: TAction;
    exit: TAction;
    save: TAction;
    undo: TAction;
    SaveDialog: TSaveDialog;
    redo: TAction;
    cut: TAction;
    Paste: TEditPaste;
    copy: TAction;
    find: TAction;
    replace: TAction;
    toolbar: TAction;
    statusbas: TAction;
    Set1: TAction;
    about: TAction;
    ToolBar2: TToolBar;
    cbFontSize: TComboBox;
    OpenDialog: TOpenDialog;
    cbFontName: TComboBox;
    FindDialog: TFindDialog;
    ReplaceDialog1: TReplaceDialog;
    mmContent: TSynMemo;
    tohtml: TAction;
    tohtmlOnClipboard: TAction;
    creaturl: TAction;
    C1: TMenuItem;
    N26: TMenuItem;
    N31: TMenuItem;
    N32: TMenuItem;
    ToolButton22: TToolButton;
    ToolButton24: TToolButton;
    showlines: TAction;
    N6: TMenuItem;
    ToolButton25: TToolButton;
    StatusBar: TStatusBar;
    relating: TAction;
    Delphi1: TMenuItem;

    procedure exitExecute(Sender: TObject);
    procedure Set1Execute(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure mmContentChange(Sender: TObject);
    procedure undoExecute(Sender: TObject);
    procedure redoExecute(Sender: TObject);
    procedure cutExecute(Sender: TObject);
    procedure PasteExecute(Sender: TObject);
    procedure copyExecute(Sender: TObject);
    procedure cbFontNameChange(Sender: TObject);
    procedure cbFontSizeChange(Sender: TObject);
    procedure toolbarExecute(Sender: TObject);
    procedure statusbasExecute(Sender: TObject);
    procedure openExecute(Sender: TObject);
    procedure newExecute(Sender: TObject);
    procedure saveExecute(Sender: TObject);
    procedure saveasExecute(Sender: TObject);
    procedure creaturlExecute(Sender: TObject);
    procedure tohtmlExecute(Sender: TObject);
    procedure tohtmlOnClipboardExecute(Sender: TObject);
    procedure mmContentStatusChange(Sender: TObject;
      Changes: TSynStatusChanges);
    procedure findExecute(Sender: TObject);
    procedure FindDialogFind(Sender: TObject);
    procedure replaceExecute(Sender: TObject);
    procedure ReplaceDialog1Find(Sender: TObject);
    procedure ReplaceDialog1Replace(Sender: TObject);
    procedure showlinesExecute(Sender: TObject);
    procedure DropFiles(var message: TMessage); message WM_DROPFILES;
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure relatingExecute(Sender: TObject);


  private
    { Private declarations }
    FFileName: string;
    FNeedSave: boolean;
    procedure setStatus;
    procedure setSynExporterHTML;
    function DoSave: boolean;
    procedure CreateParams(var Params: TCreateParams); override;
    procedure RegistFile;
    procedure ReadForm;
    procedure SaveForm;
  public
    { Public declarations }
    FIsTransfer: boolean;


  end;

var
  PasFileEditForm: TPasFileEditForm;
const
  colorfile = 'color.col';
implementation

uses uPasFileEditSetForm, CreateLinkFileFunc;

{$R *.dfm}

procedure TPasFileEditForm.SaveForm;
var
IniFile:TiniFile;
begin
  IniFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Buttons.ini');
  IniFile.WriteInteger('PasEditer','Top',PasFileEditForm.Top);
  IniFile.WriteInteger('PasEditer','Left',PasFileEditForm.Left);
  IniFile.WriteInteger('PasEditer','Width',PasFileEditForm.Width);
  IniFile.WriteInteger('PasEditer','Height',PasFileEditForm.Height);
  IniFile.WriteString('PasEditer','FontName',PasFileEditForm.cbFontName.Text);
  IniFile.WriteString('PasEditer','FontSize',PasFileEditForm.cbFontSize.Text);
  IniFile.WriteBool('PasEditer','ShowLine',PasFileEditForm.showlines.Checked);
  IniFile.Free;
end;

procedure TPasFileEditForm.ReadForm;
var
IniFile:TiniFile;
begin
  IniFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Buttons.ini');
  PasFileEditForm.Top:=IniFile.ReadInteger('PasEditer','Top',143);
  PasFileEditForm.Left:=IniFile.ReadInteger('PasEditer','Left',220);
  PasFileEditForm.Width:=IniFile.ReadInteger('PasEditer','Width',676);
  PasFileEditForm.Height:=IniFile.ReadInteger('PasEditer','Height',484);
  PasFileEditForm.cbFontName.Text:=IniFile.ReadString('PasEditer','FontName','Courier New');
  PasFileEditForm.cbFontSize.Text:=IniFile.ReadString('PasEditer','FontSize','10');
  PasFileEditForm.showlines.Checked:=IniFile.ReadBool('PasEditer','ShowLine',true);
  IniFile.Free;
end;

procedure TPasFileEditForm.RegistFile;
var
  reg: TRegistry;
  I: integer;
const
  aRootKey: HKEY = HKEY_CLASSES_ROOT;
  OpenKeys: array[1..5] of string = ('DelphiCLXForm\Shell\', 'DelphiForm\Shell\',
    'DelphiPackage\Shell\', 'DelphiProject\Shell\', 'DelphiUnit\Shell\');
  MenuHint: string = 'Delphi文件编辑器';
begin
  reg := TRegistry.Create;
  reg.RootKey := aRootKey;
  for I := 1 to 5 do
  begin
    reg.OpenKey(OpenKeys[I] + MenuHint, true);
    reg.WriteString('', MenuHint);
    reg.OpenKey('command', true);
    reg.WriteString('', '"' + application.ExeName + '" "%1"');
    reg.CloseKey;
  end;
  reg.Free;
end;

procedure TPasFileEditForm.DropFiles(var message: TMessage);
var
  aFileName: array[0..254] of char;
  I: word;
begin
  inherited;
  if DoSave then
  begin
    mmcontent.Lines.Clear;
    try
      dragqueryfile(message.wparam, 0, aFileName, 255);
      mmcontent.Lines.LoadFromFile(strpas(aFileName));
      FFileName := strpas(aFileName);
      PasFileEditForm.Caption := format('Delphi程序编辑器-%s', [FFileName]);
      FNeedSave := false;
    except
      MessageBox(Handle, PChar(strpas(aFileName) + '文件不加被添加!'), PChar('消息'),
        MB_ICONINFORMATION or MB_OK);
    end;
  end;
end;

procedure TPasFileEditForm.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.Param := nil;
end;

procedure TPasFileEditForm.exitExecute(Sender: TObject);
begin
  if DoSave then
    close;
end;

procedure TPasFileEditForm.Set1Execute(Sender: TObject);
begin
  PasFileEditSetForm.show;
end;

procedure TPasFileEditForm.FormCreate(Sender: TObject);
var
  Path: string;
begin
  ReadForm;
  Path := ExtractFilePath(application.ExeName);
  RegistFile;
  if not FileExists(Path + colorfile) then
    SynPasSyn.SaveToFile(Path + colorfile);
  SynPasSyn.LoadFromFile(Path + colorfile);
  if (ParamCount > 0) and (ParamStr(1) <> '%EDITER') then
  try
    mmcontent.Lines.LoadFromFile(ParamStr(1));
    FFileName := ParamStr(1);
    PasFileEditForm.Caption := format('Delphi程序编辑器-%s', [FFileName]);
    FNeedSave := false;
  except
    FFileName := '';
  end
  else
    FFileName := '';
  cbFontName.Items.Assign(Screen.Fonts);
  StatusBar.Panels[0].Text := application.Hint;
  StatusBar.Panels[3].Text := datetostr(date());
  DragAcceptFiles(PasFileEditForm.Handle, true);
end;

procedure TPasFileEditForm.setSynExporterHTML;
begin
  SynExporterHTML1.ExportAsText := true;
  SynExporterHTML1.CreateHTMLFragment := true;
  SynExporterHTML1.Font.Name := cbFontName.Text;

⌨️ 快捷键说明

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