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

📄 upasfileeditform.pas

📁 Delphi函数工厂。。。。。。。。。。。。。
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  SynExporterHTML1.Font.Size := strtoint(cbFontSize.Text);
  SynExporterHTML1.ExportAll(mmContent.Lines);
end;

procedure TPasFileEditForm.setStatus;
begin
  undo.Enabled := mmContent.CanUndo;
  redo.Enabled := mmContent.CanRedo;
  Paste.Enabled := mmContent.CanPaste;
  cut.Enabled := mmContent.SelText <> '';
  copy.Enabled := mmContent.SelText <> '';
  StatusBar.Panels[2].Text := format('共有 %d 行', [mmContent.Lines.Count]);
  StatusBar.Panels[1].Text := format('列 = %d,行 = %d', [mmContent.CaretX, mmContent.CaretY]);
end;

procedure TPasFileEditForm.mmContentChange(Sender: TObject);
begin
  FNeedSave := True;
end;

procedure TPasFileEditForm.undoExecute(Sender: TObject);
begin
  mmContent.Undo;
end;

procedure TPasFileEditForm.redoExecute(Sender: TObject);
begin
  mmContent.Redo;
end;

procedure TPasFileEditForm.cutExecute(Sender: TObject);
begin
  mmContent.CutToClipboard;
end;

procedure TPasFileEditForm.PasteExecute(Sender: TObject);
begin
  mmContent.PasteFromClipboard;
end;

procedure TPasFileEditForm.copyExecute(Sender: TObject);
begin
  mmContent.CopyToClipboard;
end;

procedure TPasFileEditForm.cbFontNameChange(Sender: TObject);
begin
  mmContent.Font.Name := cbFontName.Text;
end;

procedure TPasFileEditForm.cbFontSizeChange(Sender: TObject);
var
  intSize: Integer;
begin
  try
    intSize := StrToInt(cbFontSize.text);
  except
    intSize := 10;
  end;
  mmContent.Font.Size := intSize;
end;

procedure TPasFileEditForm.toolbarExecute(Sender: TObject);
begin
  coolbar1.Visible := toolbar.Checked;
end;

procedure TPasFileEditForm.statusbasExecute(Sender: TObject);
begin
  StatusBar.Visible := statusbas.Checked;
end;

function TPasFileEditForm.DoSave: boolean;
begin
  result := true;
  if FNeedSave then
    case MessageBox(Handle, PChar('文件还没保存,现在要保存吗?'), PChar('询问'),
      MB_ICONQUESTION or MB_YESNOCANCEL or MB_DEFBUTTON1) of
      IDYES: save.Execute;
      IDCANCEL: result := false;
    end;
end;

procedure TPasFileEditForm.openExecute(Sender: TObject);
begin
  if DoSave then
  begin
    if FFileName <> '' then
      OpenDialog.FileName := FFileName;
    if OpenDialog.Execute then
    begin
      mmContent.Lines.LoadFromFile(OpenDialog.FileName);
      FFileName := OpenDialog.FileName;
      PasFileEditForm.Caption := format('Delphi程序编辑器-%s', [FFileName]);
      FNeedSave := false;
    end;
  end;
end;

procedure TPasFileEditForm.newExecute(Sender: TObject);
begin
  if DoSave then
  begin
    mmContent.ClearAll;
    FFileName := '';
    FNeedSave := false;
  end;
end;

procedure TPasFileEditForm.saveExecute(Sender: TObject);
var
  ds: TCopyDataStruct;
  hd: THandle;
begin
  if FIsTransfer then
  begin
    ds.cbData := Length(mmContent.Lines.Text) + 1;
    GetMem(ds.lpData, ds.cbData); //为传递的数据区分配内存
    StrCopy(ds.lpData, PChar(mmContent.Lines.Text));
    Hd := FindWindow(nil, '函数库'); // 获得接受窗口的句柄
    if Hd <> 0 then
      SendMessage(Hd, WM_COPYDATA, Handle,
        Cardinal(@ds)); // 发送WM_COPYDATA消息
    FreeMem(ds.lpData); //释放资源
  end
  else
    if FFileName <> '' then
      mmContent.Lines.SaveToFile(FFileName)
    else
      saveas.Execute;
  FNeedSave := false;
  PasFileEditForm.Caption := format('Delphi程序编辑器-%s', [FFileName]);
end;


procedure TPasFileEditForm.saveasExecute(Sender: TObject);
begin
  SaveDialog.Filter := 'Delphi文件(*.pas; *.bpg; *.dpr; *.dfm) |*.pas; *.bpg; *.dpr; *.dfm|所有文件(*.*)|*.*';
  if FFileName <> '' then
    SaveDialog.FileName := FFileName;
  if SaveDialog.Execute then
  begin
    if pos('.', SaveDialog.FileName) = 0 then
      SaveDialog.FileName := SaveDialog.FileName + '.pas';
    mmContent.Lines.SaveToFile(SaveDialog.FileName);
    FFileName := SaveDialog.FileName;
    PasFileEditForm.Caption := format('Delphi程序编辑器-%s', [FFileName]);
  end;
end;

procedure TPasFileEditForm.creaturlExecute(Sender: TObject);
begin
  SaveDialog.Filter := '';
  if SaveDialog.Execute then
    if SaveDialog.FileName <> '' then
    begin
      if not CreateLink(SaveDialog.FileName, Application.ExeName, '%EDITER') then
        MessageBox(Handle, PChar('创建快捷方式失败!'), PChar('错误'), MB_ICONERROR);
    end;

end;

procedure TPasFileEditForm.tohtmlExecute(Sender: TObject);
begin
  SaveDialog.Filter := '网页文件(*.htm)|*.htm';
  if SaveDialog.Execute then
  begin
    if pos('.htm', SaveDialog.FileName) = 0 then
      SaveDialog.FileName := SaveDialog.FileName + '.htm';
    setSynExporterHTML;
    SynExporterHTML1.SaveToFile(SaveDialog.FileName);
  end;
end;

procedure TPasFileEditForm.tohtmlOnClipboardExecute(Sender: TObject);
begin
  setSynExporterHTML;
  SynExporterHTML1.CopyToClipboard;
  MessageBox(Handle, PChar('内容已成功转换并保存到剪贴板上,您可以通过Ctrl+V粘贴到适当位置了.'), PChar('消息'),
    MB_ICONINFORMATION or MB_OK);
end;

procedure TPasFileEditForm.mmContentStatusChange(Sender: TObject;
  Changes: TSynStatusChanges);
begin
  setStatus;
end;

procedure TPasFileEditForm.findExecute(Sender: TObject);
begin
  FindDialog.FindText := mmContent.SelText;
  FindDialog.Execute;
end;

function ExtractOptions(const AOption: TFindOptions): TSynSearchOptions;
begin
  Result := [];
  if frMatchCase in AOption then Include(Result, ssoMatchCase);
  if frWholeWord in AOption then Include(Result, ssoWholeWord);
  if not (frDown in AOption) then Include(Result, ssoBackwards);
  if frReplace in AOption then Include(Result, ssoReplace);
  if frReplaceAll in AOption then Include(Result, ssoReplaceAll);
end;

procedure TPasFileEditForm.FindDialogFind(Sender: TObject);
var
  sFindText: string;
begin
  sFindText := FindDialog.FindText;
  if mmContent.SearchReplace(sFindText, '', ExtractOptions(FindDialog.Options)) = 0 then
  begin
    FindDIalog.CloseDialog;
    MessageBox(Handle, PChar('字串 "' + sFindText + '" 找不到。'), '提示', MB_ICONINFORMATION);
  end
  else
    FindDialog.Position := mmContent.CaretXY;
end;

procedure TPasFileEditForm.replaceExecute(Sender: TObject);
begin
  ReplaceDialog1.FindText := mmContent.SelText;
  ReplaceDialog1.Execute;
end;

procedure TPasFileEditForm.ReplaceDialog1Find(Sender: TObject);
var
  sFindText: string;
begin
  sFindText := ReplaceDialog1.FindText;
  if mmContent.SearchReplace(sFindText, '', ExtractOptions(FindDialog.Options)) = 0 then
  begin
    ReplaceDialog1.CloseDialog;
    MessageBox(Handle, PChar('字串 "' + sFindText + '" 找不到。'), '提示', MB_ICONINFORMATION);
  end
  else
    ReplaceDialog1.Position := mmContent.CaretXY;
end;

procedure TPasFileEditForm.ReplaceDialog1Replace(Sender: TObject);
var
  sFindText: string;
  sReplaceText: string;
  Op: TSynSearchOptions;
begin
  sFindText := ReplaceDialog1.FindText;
  sReplaceText := ReplaceDialog1.ReplaceText;
  Op := ExtractOptions(ReplaceDialog1.Options);
  if ssoReplaceAll in op then
  begin
    if MessageBox(Handle, PChar('您确实要将所有的 "' + sFindText +
      '" 全部替换为 "' + sReplaceText + '" 吗?'), '询问',
      MB_ICONQUESTION or MB_YESNO) = idYes then
      while mmContent.SearchReplace(sFindText, '', Op) <> 0 do
        mmContent.SelText := sReplaceText;
  end
  else
  begin
    mmContent.SelText := sReplaceText;
  end;
end;

procedure TPasFileEditForm.showlinesExecute(Sender: TObject);
begin
  mmContent.Gutter.ShowLineNumbers:=showlines.Checked; 
end;

procedure TPasFileEditForm.FormShow(Sender: TObject);
begin
  FormEffect.FormOpen(PasFileEditForm.Handle, 15);
end;

procedure TPasFileEditForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  SaveForm;
  FormEffect.FormClose(PasFileEditForm.Handle, 15);
end;

procedure TPasFileEditForm.relatingExecute(Sender: TObject);
begin
RegistFile;
end;



end.

⌨️ 快捷键说明

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