如何实现这样的功能,点击按钮则出现保存页面,文件名系统自动取好,如昆明200205。选择位置就可以保存。

解决方案 »

  1.   

    在你的窗体上放一个SaveDialog
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      SaveDialog1.FileName := '昆明200205';
      SaveDialog1.Filter := 'dat'; // 文件扩展名
      if SaveDialog1.Execute then
      begin
        // 你的代码
      end;
    end;
      

  2.   

    to windofsun(太阳风):
    我就只是保存文件,
    // 你的代码
    写什末代码?
      

  3.   

    SaveDialog只是提供一个保存文件的手段,你的那个“昆明200205”,SaveDialog并不知道它有什么内容,还要你去把它保存到硬盘上。
      

  4.   

    我的“昆明200205”是个已存在的文本文件,现在就是要让用户来选择保存的位置,硬盘或软盘。
    我这样写有问题:
    if savedialog1.Execute then
       assignfile(copytxt,savedialog1.FileName);copytxt就是已存在的文本文件“昆明200205”,该如何写?
      

  5.   

    既然是已经存在的文件,干嘛不用CopyFileTo函数?
      

  6.   

    而且你用SaveDialog的话,用户很有可能自己修改文件名。从你的要求看,不如用ShellTreeView等只能选路径的控件
      

  7.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, IdGlobal, ShellCtrls, StdCtrls, ComCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        ShellTreeView1: TShellTreeView;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      sDestDir: string;
    begin
      sDestDir := ShellTreeView1.Path;
      Caption := sDestDir;
      CopyFileTo('C:\昆明200205.dat', sDestDir + '\昆明200205.dat');
    end;end.
      

  8.   

    to windofsun:
    你的方法不能保存在软盘上,你试试!
      

  9.   

    savedialog只是让用户指定一个文件名而已,得到的是个字符串。
    具体怎么保存文件是你自己写代码的!
    可以使用fileopen,fileread,filewrite,fileclose.
    如果不用改变文件内容,也可以使用filecopy(a,b,false)或者renamefile来直接copy一个存在的文件,或者只改变文件名。