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

📄 txtview.pas

📁 本软件作为交流使用
💻 PAS
字号:
unit Txtview;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, FileCtrl, Menus, ComCtrls, ImgList, Buttons,

     mmsystem, jpeg,GIFImage,CNFForm,ChangNameForm;

type
  TForm1 = class(TForm)
    FileListBox1: TFileListBox;
    Panel1: TPanel;
    Button1: TButton;
    Panel3: TPanel;
    Memo1: TMemo;
    SaveDialog1: TSaveDialog;
    DriveComboBox1: TDriveComboBox;
    DirectoryListBox1: TDirectoryListBox;
    PopupMenu1: TPopupMenu;
    popMenucut: TMenuItem;
    popMenucopy: TMenuItem;
    popMenupaste: TMenuItem;
    N3: TMenuItem;
    N7: TMenuItem;
    popMenuUndo: TMenuItem;
    ImageList1: TImageList;
    popMenudel: TMenuItem;
    popMenuselect: TMenuItem;
    popMenudatetime: TMenuItem;
    Panel2: TPanel;
    Image1: TImage;
    Edit1: TEdit;
    Button2: TButton;
    Buttonrename: TButton;
    Buttondelete: TButton;
    SpeedButton1: TSpeedButton;
    Image2: TImage;
    procedure FormCreate(Sender: TObject);
    procedure FileListBox1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure popMenucutClick(Sender: TObject);
    procedure popMenucopyClick(Sender: TObject);
    procedure popMenupasteClick(Sender: TObject);
    procedure popMenuUndoClick(Sender: TObject);
    procedure PopupMenu1Popup(Sender: TObject);
    procedure popMenudelClick(Sender: TObject);
    procedure popMenuselectClick(Sender: TObject);
    procedure popMenudatetimeClick(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure FileListBox1Change(Sender: TObject);
    procedure ButtondeleteClick(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ButtonrenameClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  const crMyCursor=1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
   Rect:TRect;
begin
    Image2.Picture.LoadFromFile('g.gif');
    Screen.Cursors[crMyCursor]:=LoadCursorFromFile('Appstarting.ani');//输入动画光标
    Screen.Cursor:=crMycursor;
    Filelistbox1.Directory:=Extractfilepath(Application.ExeName)+'一天一点进步';
    Savedialog1.DefaultExt:='txt';//设置默认扩展名
    Savedialog1.Options:=Savedialog1.Options+[OfOverwritePrompt];
    //OfOverwritePrompt是当保存文件名相同时弹出的提示框
    
    ///////////////自定义memo边界////////////////////////
    //获取Memo1的边界矩形,保存到Rect中
    SendMessage(Memo1.Handle,EM_GetRect,0,LongInt(@Rect));
    //Left的初始值为1
    Rect.Left:=20;
    //Top的初始值为1
    Rect.Top:=20;
    //更改Rect的边界值
    Rect.Right:=Rect.Right-19;
    Rect.Bottom:=Rect.Bottom-19;
    //将Memo1的边界矩形设置为更改后的值
    SendMessage(Memo1.Handle,EM_SetRect,0,LongInt(@Rect));
    //Memo刷新重绘
    Memo1.Refresh;
    {原来加在Filelistbox1的点击事件中的时候,会出现每点击一次那么Memo控件的
    Height值就增加的情况
    后来想到应该加在这里了}
end;

procedure TForm1.FileListBox1Click(Sender: TObject);
begin
    sndplaysound('Msg.wav',SND_NODEFAULT or SND_ASYNC);//自定义声音
    Memo1.Lines.LoadFromFile(Filelistbox1.FileName);//导入文本文件
    //Form1.Caption:=Extractfilename(Filelistbox1.FileName)+'-记事本';
    Edit1.Text:=Extractfilename(Filelistbox1.FileName);//当前的文件名
end;

procedure TForm1.Button1Click(Sender: TObject);
var
   flename:string;
begin
   if Filelistbox1.ItemIndex<>-1 then
   begin
       flename:=Filelistbox1.FileName;
       Memo1.Lines.SaveToFile(flename);//保存当前文件
   end
   else exit;
end;



procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
   IntResult:Integer;
begin
   if memo1.Modified then
   begin
     sndplaysound('exclamation.wav',Snd_Nodefault or Snd_Async);//播放自定义声音
     IntResult:=Messagedlg('文件 '+Filelistbox1.FileName+' 的内容已经改动'
+#13+'想要保存吗?',mtInformation,mbyesnocancel,0);
     if IntResult=Idyes then
        Button1Click(Sender);
     if Intresult=Idno then
        action:=caFree;//释放窗体
     if Intresult=Idcancel then
        action:=caNone;//不进行任何操作,回到窗体
   end
   else
      action:=caFree;////释放窗体
end;

procedure TForm1.popMenucutClick(Sender: TObject);
begin
   if memo1.SelLength>0 then
       memo1.CutToClipboard//剪切
   else exit;
end;

procedure TForm1.popMenucopyClick(Sender: TObject);
begin
    if memo1.SelLength>0 then
       memo1.CopyToClipboard//复制
    else exit;
end;

procedure TForm1.popMenupasteClick(Sender: TObject);
begin
     memo1.PasteFromClipboard;//粘贴
end;

procedure TForm1.popMenuUndoClick(Sender: TObject);
begin
    memo1.Undo;//撤销
end;

procedure TForm1.PopupMenu1Popup(Sender: TObject);
begin
    if memo1.SelLength>0 then
    begin
       popMenucut.Enabled:=true;
       popMenucopy.Enabled:=true;
       popMenudel.Enabled:=true;
    end
    else
    begin
       popMenucut.Enabled:=false;
       popMenucopy.Enabled:=false;
       popMenudel.Enabled:=false;
    end;
end;

procedure TForm1.popMenudelClick(Sender: TObject);
begin
    memo1.ClearSelection;//删除选择部分
end;

procedure TForm1.popMenuselectClick(Sender: TObject);
begin
    memo1.SelectAll;
end;

procedure TForm1.popMenudatetimeClick(Sender: TObject);
begin
   memo1.Lines.Add(Formatdatetime('c',now))
   {在文本末加入时间,输出为:2004-8-7 9:55:40}
end;


procedure TForm1.Edit1Change(Sender: TObject);
begin
   try
     SendMessage(Filelistbox1.Handle,LB_SelectString,-1,LongInt(Edit1.Text));
   except
     exit;
   end;

end;

procedure TForm1.FileListBox1Change(Sender: TObject);
begin//确定选择文件以后按钮才可以使用////////////
   if Filelistbox1.ItemIndex<>-1 then
   begin
     ButtonRename.Enabled:=true;
     Buttondelete.Enabled:=true;
   end
   else
   begin
     ButtonRename.Enabled:=false;
     Buttondelete.Enabled:=false;
   end;
end;

procedure TForm1.ButtondeleteClick(Sender: TObject);
var
   IntResult:Integer;
   IsOK:Boolean;
begin
   SndplaySound('Exclamation.wav',SND_Nodefault or SND_Async);//播放提示声音
   IntResult:=Messagedlg('文件 '+Filelistbox1.FileName+' 将被删除!'+
                #13#10+'确定吗?',mtInformation,mbOKCancel,0);
   if IntResult=IdOK then
   begin
      IsOK:=DeleteFile(Filelistbox1.FileName);
      if IsOK=true then
      begin
         Memo1.Clear;
         Showmessage('文件删除成功!');
         Filelistbox1.Update;//消除不存在的文件名
      end
      else Showmessage('文件删除失败!');
   end;
   if IntResult=IdCancel then exit;
   Filelistbox1.Update;//强制更新,这样Filelistbox1就不会显示删除的文件名了
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
    CFileFM.Show;
    CFileFM.EditNew.SetFocus;
end;

procedure TForm1.ButtonrenameClick(Sender: TObject);
begin
   Form2.Show;
   Form2.Edit1.Text:=ExtractFileName(Filelistbox1.FileName);
   Form2.Edit2.Text:=Filelistbox1.FileName;
   Form2.Edit3.Text:=ExtractFilepath(Filelistbox1.FileName);
   Form2.Edit1.SetFocus;
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
    Application.Terminate;
end;

end.

⌨️ 快捷键说明

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