DELPHI保存到路径和导出文件类型问题

时间:2021-04-05 23:46:54
有 文件名称:edit1 显示WORD:OleContainer1保存:点button1(不弹出保存框直接到d:\1目录下文件名取edit里的文字) 导出:点button2(可选路径,文件名取edit里的文字后缀可选保存为JPG格式)~两个button还能判断是否edit1里有文件名没有提示“输入”和是否保存地方有同名文件存在,有的提示‘是否覆盖’(是覆盖,否不保存),同时保存完OleContainer1内容清空,没保存修改内容还在!
procedure TForm1.button1Click(Sender: TObject);//edit1输入文件名点击会有文件名但没后缀,,edit1空的不会提示请输入文件名,怎么改?
var
fName: String;
begin
SaveDialog1.FileName:= edit1.text;
if SaveDialog1.Execute  then
begin
    fName:= SaveDialog1.FileName;
    if (FileExists(fName))and(MessageDlg('文件已存在,是否替换现在的文件?',mtWarning,[mbYes,mbNo],0)=mrNo) then exit;
    Screen.Cursor:= crHourGlass;
    try
      //保存到本地
      try
        OleContainer1.SaveAsDocument(fName);
      except
        ShowMessage('保存失败,请输入合同名称!!!');
      end;
    finally
      Screen.Cursor:= crDefault;
    end;
end;
end;
procedure TForm1.button2Click(Sender: TObject);\\可提示说请输入文件名~但是输了以后根目录下是fName.doc文件不是我想要的edit1里的文件名.doc怎么修改?
   var
 P:string;
begin
SaveDialog1.FileName:= edit1.text;
P:=SaveDialog1.FileName;
if P='' then
  ShowMessage('请输入文件名称!!!');
if P<>'' then
   begin
    if (FileExists(fName))and(MessageDlg('文件已存在,是否替换现在的文件?',mtWarning,[mbYes,mbNo],0)=mrNo) then exit;
    Screen.Cursor:= crHourGlass;
    try
  OleContainer1.SaveAsDocument( 'd:\1\fName.doc ');
      except
       ShowMessage('保存失败!!!');
 end;
   end;
   end;

9 个解决方案

#1


UP!高手在哪里

#2


OleContainer1.SaveAsDocument( 'd:\1\fName.doc '); //你这里直接写了啊。

OleContainer1.SaveAsDocument( p); 
 

#3


引用 2 楼 zhangqiwen 的回复:
OleContainer1.SaveAsDocument( 'd:\1\fName.doc '); //你这里直接写了啊。

OleContainer1.SaveAsDocument( p);

P只是个文件名啊,那路径d:\1下保存到怎么弄。。你回答的是第二个问题,第二个是直接保存到目录下两条代码我顺序发错了

#4


pOleContainer1.SaveAsDocument('d:\1\'+p);  //这样啊。
 

#5


SaveDialog1.Execute(); 
pOleContainer1.SaveAsDocument(SaveDialog1.name);  //这样用不行么。 

SaveDialog1.name本来就包括路径加名字的,控件属性里可以设置。

#6


引用 4 楼 zhangqiwen 的回复:
pOleContainer1.SaveAsDocument('d:\1\'+p);  //这样啊。

OleContainer1.SaveAsDocument('d:\1\'+p+'.doc'); 可用谢谢启发!貌似有同个文件名提示覆盖不会来!!

#7


  if   FileExists('d:\1\'+p) then  //如果有文件存在 判断文件是否存在
   begin
    DeleteFile('d:\1\'+p) //删除它,
  end;
 OleContainer1.SaveAsDocument('d:\1\'+p+'.doc'); 

#8


有 文件名称:edit1 显示WORD:OleContainer1保存:点button2(可选路径,文件名取edit里的文字后缀可选保存为JPG等不可编辑格式,这个解决给分结贴)请指教!!

#9


这些个其实设置 SaveDialog控件属性就解决的。 指定只能保存那几种类型。 好像问题一直连续下去的。

#1


UP!高手在哪里

#2


OleContainer1.SaveAsDocument( 'd:\1\fName.doc '); //你这里直接写了啊。

OleContainer1.SaveAsDocument( p); 
 

#3


引用 2 楼 zhangqiwen 的回复:
OleContainer1.SaveAsDocument( 'd:\1\fName.doc '); //你这里直接写了啊。

OleContainer1.SaveAsDocument( p);

P只是个文件名啊,那路径d:\1下保存到怎么弄。。你回答的是第二个问题,第二个是直接保存到目录下两条代码我顺序发错了

#4


pOleContainer1.SaveAsDocument('d:\1\'+p);  //这样啊。
 

#5


SaveDialog1.Execute(); 
pOleContainer1.SaveAsDocument(SaveDialog1.name);  //这样用不行么。 

SaveDialog1.name本来就包括路径加名字的,控件属性里可以设置。

#6


引用 4 楼 zhangqiwen 的回复:
pOleContainer1.SaveAsDocument('d:\1\'+p);  //这样啊。

OleContainer1.SaveAsDocument('d:\1\'+p+'.doc'); 可用谢谢启发!貌似有同个文件名提示覆盖不会来!!

#7


  if   FileExists('d:\1\'+p) then  //如果有文件存在 判断文件是否存在
   begin
    DeleteFile('d:\1\'+p) //删除它,
  end;
 OleContainer1.SaveAsDocument('d:\1\'+p+'.doc'); 

#8


有 文件名称:edit1 显示WORD:OleContainer1保存:点button2(可选路径,文件名取edit里的文字后缀可选保存为JPG等不可编辑格式,这个解决给分结贴)请指教!!

#9


这些个其实设置 SaveDialog控件属性就解决的。 指定只能保存那几种类型。 好像问题一直连续下去的。