【发布时间】:2015-10-08 23:49:09
【问题描述】:
我在 XP 上使用 Delphi 6 创建了一个新应用程序。我将 savedialog 组件连同一个按钮组件放在主窗体上。我将按钮处理程序编辑为:
procedure TForm1.Button1Click(Sender: TObject);
begin
savedialog1.FileName := 'test';
if savedialog1.Execute then showmessage('hit 1');
savedialog1.FileName := 'hold' + savedialog1.FileName;
if savedialog1.Execute then showmessage('hit 2');
end;
如果我在第一个保存对话框中运行并单击“保存”,则第二个保存对话框永远不会出现。如果我在第一个保存对话框中单击“取消”,则会出现第二个保存对话框。如果我将 concat 更改为
savedialog1.FileName := 'holdtest';
无论我是保存还是取消第一个对话框,都会出现第二个对话框。怎么回事?
【问题讨论】:
-
hold + SaveDialog1.FileName可能类似于holdC:\test.txt,这是一个无效的文件名,这可能会导致对话框不显示(只是猜测,无法重现)。可能,你想要的是hold + ExtractFileName(SaveDialog1.FileName),它将产生holdtest.txt。 -
匆忙中,我忘记了 FileName 是那些无法回读您刚刚写的内容的奇怪属性之一。 (组件设计者注意:像“FileName”这样的东西应该保持原样,而另一个名为“FullPath”的属性将是发送修改后字符串的更好位置。)不过,如果文件名不好,SaveDialog 会好很多没有阻止对话框出现。
标签: delphi