
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.总结
以上是内存溢出为你收集整理的Delphi Memo的记事本功能全部内容,希望文章能够帮你解决Delphi Memo的记事本功能所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)