这是我在这里的第一篇文章,所以如果我做的不对,请原谅我。

我在Windows 10计算机上使用Delphi 7。当我使用TOpenDialog时,关闭时在filename属性中得到了垃圾。这就是我得到的þƒ‡uÔÁ™ßðæRw。我创建了一个带有按钮和编辑框的简单表单,以在此处显示问题。有人可以帮我吗。

代码如下。

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      opendialog1.Execute();
    end;

    procedure TForm1.OpenDialog1Close(Sender: TObject);
    begin
      edit1.Text := opendialog1.FileName;
    end;

最佳答案

不要使用对话框的OnClose事件。在拥有文件名数据的基础对话框对象被销毁后调用该方法。

而是在Execute返回时响应对话框。

procedure TForm1.Button1Click(Sender: TObject);
begin
  if opendialog1.Execute() then
    edit1.Text := opendialog1.FileName;
end;


请注意,您还必须测试Execute的返回值,以处理用户取消对话框的操作。

09-19 06:49