Delphi Memo的记事本功能
发布时间:2020-12-15 09:31:50 所属栏目:大数据 来源:网络整理
导读:Delphi Memo的记事本功能 ? ? 下载地址 :? http://download.csdn.net/detail/teststudio/6412883 这个代码实现了Windows记事本的主要功能。 新建,打开,保存,另存,退出。 文件拖拽打开文件 这主要是判断Memo内容是否修改过 unit Unit1; interface uses Wi
Delphi Memo的记事本功能 ? ?
下载地址 :?
http://download.csdn.net/detail/teststudio/6412883
这个代码实现了Windows记事本的主要功能。
新建,打开,保存,另存,退出。
文件拖拽打开文件 这主要是判断Memo内容是否修改过
unit Unit1; interface uses Winapi.Windows,Winapi.Messages,System.SysUtils,System.Variants,System.Classes,Vcl.Graphics,Vcl.Controls,Vcl.Forms,Vcl.Dialogs,Vcl.StdCtrls,Vcl.ExtDlgs; type TForm1 = class(TForm) Memo1: TMemo; FileOpen: TButton; FileSave: TButton; FileSaveAs: TButton; FileExit: TButton; FileNew: TButton; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; procedure FileOpenClick(Sender: TObject); procedure FileSaveClick(Sender: TObject); procedure FileExitClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FileNewClick(Sender: TObject); procedure FileSaveAsClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } FFileName: string; FUpdating: Boolean; FDragOfs: Integer; FDragging: Boolean; procedure CheckFileSave; procedure SetFileName(const FileName: String); procedure PerformFileOpen(const AFileName: string); procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES; public { Public declarations } end; var Form1: TForm1; implementation uses ShellAPI; {$R *.dfm} resourcestring sSaveChanges = ‘是否将未更改保存到 %s?‘; sOverWrite = ‘%s 已存在。‘+#13#10+‘要替换它吗?‘; sTitle = ‘记事本‘; sUntitled = ‘未命名‘; sColRowInfo = ‘Line: %3d Col: %3d‘; sCommonDlgFileName = ‘文本文档(*.txt)|*.txt|所有文件(*.*)|*.*‘; procedure TForm1.CheckFileSave; var SaveRespond: Integer; begin if not Memo1.Modified then Exit; SaveRespond := MessageBox(Handle,PWideChar(Format(sSaveChanges,[FFileName]) ),PWideChar(sTitle),MB_YESNOCANCEL + MB_ICONINFORMATION); case SaveRespond of idYes: FileSave.click; idNo: ; { Nothing } idCancel: Abort; end; end; procedure TForm1.SetFileName(const FileName: String); begin FFileName := FileName; Caption := Format(‘%s - %s‘,[ExtractFileName(FileName),sTitle]); end; procedure TForm1.PerformFileOpen(const AFileName: string); begin Memo1.Lines.LoadFromFile(AFileName); SetFileName(AFileName); Memo1.SetFocus; Memo1.Modified := False; end; procedure TForm1.WMDropFiles(var Msg: TWMDropFiles); var CFileName: array [0 .. MAX_PATH] of Char; begin try if DragQueryFile(Msg.Drop,0,CFileName,MAX_PATH) > 0 then begin CheckFileSave; PerformFileOpen(CFileName); Msg.Result := 0; end; finally DragFinish(Msg.Drop); end; end; procedure TForm1.FileNewClick(Sender: TObject); begin CheckFileSave; SetFileName(sUntitled); Memo1.Lines.Clear; Memo1.Modified := False; end; procedure TForm1.FileOpenClick(Sender: TObject); begin CheckFileSave; with TOpenDialog.Create(nil) do begin Filter := sCommonDlgFileName; FileName:=‘*.txt‘; if Execute then begin PerformFileOpen(FileName); Memo1.ReadOnly := ofReadOnly in Options; end; end; end; procedure TForm1.FileSaveAsClick(Sender: TObject); begin with TSaveDialog.Create(nil) do begin Filter := sCommonDlgFileName; FileName:=‘*.txt‘; if Execute then begin if FileExists(FileName) then if MessageBox(Handle,PWideChar(Format(sOverWrite,[FFileName])),MB_YESNOCANCEL + MB_ICONINFORMATION) <> idYes then Exit; Memo1.Lines.SaveToFile(FileName); SetFileName(FileName); Memo1.Modified := False; end; end; end; procedure TForm1.FileSaveClick(Sender: TObject); begin if FFileName = sUntitled then FileSaveAs.click else begin Memo1.Lines.SaveToFile(FFileName); Memo1.Modified := False; end; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin CheckFileSave; end; procedure TForm1.FormCreate(Sender: TObject); begin SetFileName(sUntitled); DragAcceptFiles(Handle,True); end; procedure TForm1.FileExitClick(Sender: TObject); begin Close; end; end. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |