Delphi,openDialog,点击时不显示任何窗口

时间:2014-07-03 14:02:25

标签: delphi topendialog

我正在尝试稍微修改this tutorial,将Excel文件加载到Delphi中。我想使用OpenDialog来获取文件路径并启动后续过程将文件加载到文本框并启动连接过程。我起草了下面的代码,但在编译文件并单击按钮后发生了注意事项。我的理解是单击按钮应显示打开的文件窗口。我不明白为什么没有文件选择的窗口出现。

procedure TForm1.Button1Click(Sender: TObject);
var
  openDialog : TOpenDialog;    // Open dialog variable
  strConn : WideString; // Declare wide string for the connection

begin
  // Create the open dialog object - assign to our open dialog variable
  openDialog := TOpenDialog.Create(self);

  // Set up the starting directory to be the current one
  openDialog.InitialDir := GetCurrentDir;

  // Only allow existing files to be selected
  openDialog.Options := [ofFileMustExist];

  // Allow only .Excel and .pas files to be selected
  openDialog.Filter :=
    'Excel 2003|*.xls|Excel 2007 and newer|*.xlsx';

  // Select pascal files as the starting filter type
  openDialog.FilterIndex := 2;

  // Give file path to the edit
  Edit1.Text := openDialog.FileName;


  // Connect the Excel file
  AdoConnection1.Connected:=False;
  AdoConnection1.ConnectionString:=strConn;

  end;

1 个答案:

答案 0 :(得分:2)

您无法显示该对话框。这样做:

if not openDialog.Execute then
  Abort;

显然,您需要在初始化属性之后但在读取文件名之前执行此操作。

this earlier question可以看出,你之前显然已经成功地做到了这一点。正如我之前所说,它仍然是一个非常好的主意,让代码选择与其余代码分开的文件名。尝试安排代码段执行一项任务,单独执行一项任务。这样做可以使这些代码段合成。