Delphi 7 opendialog 在 Windows 10 中使用时文件名中有垃圾

Delphi 7 opendialog has garbage in filename when used in Windows 10

这是我第一次post来这里,如果我做的不对,请原谅我。

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

代码如下。

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

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

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

改为在 Execute return 秒时响应对话框。

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

请注意,您还必须测试 Execute 的 return 值来处理用户取消对话框。