我的学习生涯(Delphi篇) - 01

来源:互联网 发布:网络赌搏为什么流行 编辑:程序博客网 时间:2024/04/30 04:14

    Delphi中包装了几乎所有的WIN32 API。

    这些API至今还活跃在Windows平台!

    比如下文出现的 BlockRead/ BlockWrite就是调用IOPro函数。

    -------------------------------------------------------------------------------------------------美丽分割线---------------------------

    年代:2005

    文件:my0512.7z


    效果如下图:



 Unit1.pas

unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, ShellApi, StdCtrls;type  TForm1 = class(TForm)    Button1: TButton;    Button2: TButton;    Button3: TButton;    Edit1: TEdit;    Edit2: TEdit;    Label1: TLabel;    Label2: TLabel;    procedure Button1Click(Sender: TObject);    procedure Button2Click(Sender: TObject);    procedure Button3Click(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;var  Form1: TForm1;  procedure mycopyfile(Sfname,Dfname:string);implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);var  lphKey: HKEY;  sKeyName: string;  sKeyValue: string;begin    sKeyName := 'myfile';    sKeyValue :='我的文档';    RegCreateKey(HKEY_CLASSES_ROOT,pchar(sKeyName),lphKey);    RegSetValue(lphKey,'',REG_SZ,pchar(sKeyValue),0);    sKeyName := '.xbf';    sKeyValue := 'myfile';    RegCreateKey(HKEY_CLASSES_ROOT,pchar(sKeyName),lphKey);    RegSetValue(lphKey,'',REG_SZ,pchar(sKeyValue),0);    sKeyName := 'myfile';    sKeyValue := 'e:\WINNT\SYSTEM32\NotePad.exe "%1"';    RegCreateKey(HKEY_CLASSES_ROOT,pchar(sKeyName),lphKey);    RegSetValue(lphKey,'shell\open\command',REG_SZ,pchar(sKeyValue),MAX_PATH);end;procedure TForm1.Button2Click(Sender: TObject);begin  //ShellExecute(Application.Handle,'open','NotePad.exe','',nil,SW_SHOWNORMAL);  //WinExec('command.com',SW_SHOWNORMAL);end;procedure mycopyfile(Sfname,Dfname:string);Var  Sourcef,Destinef:file;  NumRead,NumWritten:Integer;  Buf:array[1..4096] of char;//定义缓冲区;Begin  //Dfname:='c:\xiaobin.xbf';  AssignFile(Sourcef,Sfname);  Reset(Sourcef,1);  AssignFile(Destinef,Dfname);  Rewrite(Destinef,1);  Repeat    BlockRead(Sourcef,Buf,SizeOf(Buf),Numread);//读源文件    BlockWrite(destinef,buf,NumRead,NumWritten);//写目标文件;  Until (Numread=0) or (Numwritten<>numread);    //BlockRead(Sourcef,buf,SIZEOF(buf),NumRead);    //BlockWrite(Destinef,buf,NumRead,NumWritten);    closeFile(Sourcef);    Closefile(destinef);end;procedure TForm1.Button3Click(Sender: TObject);begin  if  FileExists(Edit2.Text) then  begin    if Application.MessageBox('文件已经存在!是否覆盖?','提示',MB_YESNO)=IDYES then    begin      mycopyfile(Edit1.Text,Edit2.Text);      //CopyFile('c:\xiaobin.xbf','d:\xiaobin.xbf',True);      Application.MessageBox('文件复制完成!','消息',32);    end;  end  else  begin    mycopyfile(Edit1.Text,Edit2.Text);    //CopyFile('c:\xiaobin.xbf','d:\xiaobin.xbf',True);    Application.MessageBox('文件复制完成!','消息',32);  end;  end;end.


原创粉丝点击