procedure TForm1.SpeedButton2Click(Sender: TObject);
var dir:string;
begin
  if SelectDirectory('请选择文件夹','',dir) then
end;提示错误 [Error] Unit1.pas(138): Types of actual and formal var parameters must be identical
请教错在哪 QDialogs 中的。

解决方案 »

  1.   

    var
      dir:string;—>dir: WideString
      

  2.   

    var 
      dir: WideString 
      

  3.   

    你的写法正确!不需要改动。下述代码可以测试通过!uses FileCtrl;procedure TForm1.Button1Click(Sender: TObject);
    var dir:string;
    begin
      if SelectDirectory('请选择文件夹','',dir) then showmessage(dir);
    end;
      

  4.   

    引用错单元了,不是QDialogs,而是FileCtrl
      

  5.   

    QDialogs中也有,比较喜欢这个。
      

  6.   

    QDialogs, QForms等Q打头的单元都是为跨平台写的
    仅QDialogs单元就引用了QTypes, Qt, QGraphics, QControls, QStdCtrls, QForms, QExtCtrls, QConsts, QFileDialog这么多单元
    为了这么个函数,引用这么多完全不必要用的单元?