• DELPHI


    DELPHI - How to use opendialog1 for choosing a folder?

    On Vista and up you can show a more modern looking dialog using TFileOpenDialog.

    var
      OpenDialog: TFileOpenDialog;
      SelectedFolder: string;
    .....
    OpenDialog := TFileOpenDialog.Create(MainForm);
    try
      OpenDialog.Options := OpenDialog.Options + [fdoPickFolders];
      if not OpenDialog.Execute then
        Abort;
      SelectedFolder := OpenDialog.FileName;
    finally
      OpenDialog.Free;
    end;
    
    if SelectedFolder[ Length( SelectedFolder ) ] <> '' then
      SelectedFolder := SelectedFolder + '';

     

    uses FileCtrl;
    const
      SELDIRHELP = 1000;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Dir: string;
    begin
      Dir := 'C:Windows';
      if FileCtrl.SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt],SELDIRHELP) then
        Label1.Caption := Dir;
    end;

    Selecting a directory with TOpenDialog

    ust found the code below that seems to work fine in XP and Vista, Win7.

    It provides a UI for a user to select a directory.

    It uses TOpenDialog, but sends it a few messages to clean up the appearance for the purposes of selecting a directory.

    After suffering from the limited capabilities provided by Windows itself,

    it's a pleasure to be able to give my users a familiar UI where they can browse and select a folder comfortably.

    I'd been looking for something like this for a long time so thought I'd post it here so others can benefit from it.

    Here's what it looks like in Win 7:

    function GimmeDir(var Dir: string): boolean;
    var
      OpenDialog: TOpenDialog;
      OpenDir: TOpenDir;
    begin
      //The standard dialog...
      OpenDialog:= TOpenDialog.Create(nil);
      //Objetc that holds the OnShow code to hide controls
      OpenDir:= TOpenDir.create;
      try
        //Conect both components...
        OpenDir.Dialog:= OpenDialog;
        OpenDialog.OnShow:= OpenDir.HideControls;
        //Configure it so only folders are shown (and file without extension!)...
        OpenDialog.FileName:= '*.';
        OpenDialog.Filter:=   '*.';
        OpenDialog.Title:=    'Chose a folder';
        //No need to check file existis!
        OpenDialog.Options:= OpenDialog.Options + [ofNoValidate];
        //Initial folder...
        OpenDialog.InitialDir:= Dir;
        //Ask user...
        if OpenDialog.Execute then begin
          Dir:= ExtractFilePath(OpenDialog.FileName);
          result:= true;
        end else begin
          result:= false;
        end;
      finally
        //Clean up...
        OpenDir.Free;
        OpenDialog.Free;
      end;
    end;
  • 相关阅读:
    基于git的源代码管理模型——git flow
    [Android]在Adapter的getView方法中绑定OnClickListener比较好的方法
    Java后台测试技巧
    JIRA python篇之展示多人未完成任务列表
    基于python3在nose测试框架的基础上添加测试数据驱动工具
    Java操作memcache
    对于软件测试行业的观察与反思
    通过Fiddler肆意修改接口返回数据进行测试
    Python操作MySQL数据库
    如何通过Fiddler模拟弱网进行测试
  • 原文地址:https://www.cnblogs.com/shangdawei/p/4791215.html
Copyright © 2020-2023  润新知