gpt4 book ai didi

delphi - Win7中更改Delphi OpenDialog + Drive的目录

转载 作者:行者123 更新时间:2023-12-03 15:31:27 31 4
gpt4 key购买 nike

在 Win7 上,当新目录与当前目录位于不同的驱动器上时,更改 TOpenDialog.InitialDir 似乎不起作用。

例如:我想将 InitialDir'C:\program files\MyApp' 更改为 'D:\test\MyAppData'

这是一个已知问题,还是仅存在于我的计算机上?

我已经尝试过同样的事情,如以下帖子中所述,但没有成功: Changing the directory of Delphi OpenDialog

编辑:我在 Win7 32 位上使用 DelphiXE

路径/目录是正确的:因此,当我从代码中复制该路径并将其粘贴到该对话框本身的“文件名”字段中并按 Enter 键时,该对话框将切换到该目录。只是,在我的代码中它不起作用。

更新:
我发现了问题。如果路径包含一些路径命令,例如 ..\,则 TOpenDialog.InitialDir 无法解决该问题。使用 TPath.GetFullPath(...) 使其干净。

最佳答案

我已经在 Delphi XE 上进行了测试,它运行良好...我已经这样做了:

放置一个新表单:

object Form4: TForm4
Left = 0
Top = 0
Caption = 'Form4'
ClientHeight = 204
ClientWidth = 447
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 24
Top = 40
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 0
OnClick = Button1Click
end
object Edit1: TEdit
Left = 120
Top = 42
Width = 121
Height = 21
TabOrder = 1
Text = 'D:\'
end
object OpenDialog1: TOpenDialog
InitialDir = 'C:\'
Left = 120
Top = 72
end
end

及其源代码:

unit Unit4;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm4 = class(TForm)
OpenDialog1: TOpenDialog;
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form4: TForm4;

implementation

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);
begin

OpenDialog1.InitialDir := edit1.text;
OpenDialog1.Execute;
end;

end.

问候

关于delphi - Win7中更改Delphi OpenDialog + Drive的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5907272/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com