高手求救, savedialog 使用(100分)

  • 主题发起人 主题发起人 roundlight
  • 开始时间 开始时间
R

roundlight

Unregistered / Unconfirmed
GUEST, unregistred user!
我想制作一个 打开文件 另存为的 窗体功能, 当制作到保存的时候,不知道怎么实现了,希望高手帮助,我是新注册的,还没有分数,

希望高手帮助啊

急急急!
 
if SaveDialog1.Execute then
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
 
试一下,应该没问题:
SaveDialog1.DefaultExt:='xls';
SaveDialog1.Filter := 'Text files (*.xls)|*.xls';
if not SaveDialog1.Execute then exit;
showmessage('OK');
 
谢谢上面两位高手, 可能是我的表达不清楚吧,

上面的用法,我会用,
我想说的是,向window 一样,打开一个文件,然后通过 save as 保存到另外的一个目录下面,并且 保存更换名称,
qq: 284664693
msn: roundlight@hotmail.com

这是我的交流方式,能不能直接交流啊
谢谢啦
 
还是没有得到答案,自己在顶一下啊,希望高手们帮忙啊,其实也不难,就是时间太紧了,希望大家踊跃发言啊
 
你的意思是文件的拷贝,我这里有一个完整的,安全的例子你看看吧
procedure CopyFile(const FileName, DestName: TFileName);

var

CopyBuffer: Pointer;

TimeStamp, BytesCopied: Longint;

Source, Dest: Integer;

Destination: TFileName;

const

ChunkSize: Longint = 8192;

begin

Destination := ExpandFileName(DestName);

if HasAttr(Destination, faDirectory) then

Destination := Destination + '/' + ExtractFileName(FileName);

TimeStamp := FileAge(FileName);

GetMem(CopyBuffer, ChunkSize);

try

Source := FileOpen(FileName, fmShareDenyWrite);

if Source < 0 then

raise EFOpenError.Create(FmtLoadStr(SFOpenError, [FileName]));

try

Dest := FileCreate(Destination);

if Dest < 0 then

raise EFCreateError.Create(FmtLoadStr(SFCreateError,[Destination]));

try

repeat

BytesCopied := FileRead(Source, CopyBuffer^, ChunkSize);

if BytesCopied > 0 then

FileWrite(Dest, CopyBuffer^, BytesCopied);

until BytesCopied < ChunkSize;

finally

FileSetDate(Dest,TimeStamp);

FileClose(Dest);

end;

finally

FileClose(Source);

end;

finally

FreeMem(CopyBuffer, ChunkSize);

end;

end;
function HasAttr(const FileName: String; Attr: Word): Boolean;

begin

Result := (FileGetAttr(FileName) and Attr) = Attr;

end;
 
没有人帮忙,还是自己顶, 希望大家来帮我啊, 高手进入指导,着急啊!
 
楼上的朋友,能不能在qq 里面说呢,这里太不方便了, savedialog 本身不带保存功能嘛?
 
savdialog只是选择一个路径~~自己保存就是了
 
那么能给我解释一下你的思路嘛? 我看不太明白啊,不好意思啊
谢谢啦

qq 里面聊可以嘛?
 
楼上的朋友, SFOpenError 没有声明啊, 是不是这个引用 opendialog 里面的, 现在运行不起来啊
 
不要管这么多了~~这个例子里面有很多验证的语句~~
其实就是 fileopen() 打开源文件 filecreate()创建一个新的文件
FileRead()读到一个缓存区 FileWrite()写到新建的文件里面
如果写入的没有缓存区大 就证明写完了~~copy完成了
 
我加你qq了~可是没有反应~~看看上面4个函数的帮助就行了
 
你把qq告诉我,我加你啊, 或者msn :roundlight@hotmail.com

我实现的功能就是 把一个声音文件,从一个文件夹复制到另外一个文件夹中,然后复制的时候修改这个 被复制文件的名称就可以了, 就这样,

你说的那个是不是还要打开文件中的内容啊, 我这么理解的, 能不能看懂我的意思啊,
 
怎么没有高手帮忙啊,着急啊@@@
 
你可以自已新建一个Form,把Form的样子,做成跟windows一个样子,在这个form里面添加代码不就好了.
 
长期关注,我也正想这个问题呢
 
我的意思是只要实行 复制功能就可以, 并没有必要是window的界面. 能不能帮我想想办法啊
 

Similar threads

S
回复
0
查看
816
SUNSTONE的Delphi笔记
S
S
回复
0
查看
737
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
875
DelphiTeacher的专栏
D
后退
顶部