这是用到了属性编辑器,这种类型VCL的处理代码一般放在*reg.pas文件中。如何做法,大部分书都介绍了。

解决方案 »

  1.   

    网域计算机名选择框函数源码(use shlobj):
    function GetComputerName(var ComputerName: String): Boolean;
    var
      BrowseInfo: TBrowseInfo;
      ItemIDList: PItemIDList;
      CName: array[0..MAX_PATH] of Char;
      Title: string;
      WindowList: Pointer;
    begin
      if Failed(SHGetSpecialFolderLocation(Application.Handle, CSIDL_NETWORK, ItemIDList)) then
        raise Exception.Create('不能建立网络计算机名称对话框.');
      FillChar(BrowseInfo, SizeOf(BrowseInfo), 0);
      BrowseInfo.hwndOwner := Application.Handle;
      BrowseInfo.pidlRoot := ItemIDList;
      BrowseInfo.pszDisplayName := CName;
      Title := '选择网络计算机';
      BrowseInfo.lpszTitle := PChar(Pointer(Title));
      BrowseInfo.ulFlags := BIF_BROWSEFORCOMPUTER;
      WindowList := DisableTaskWindows(0);
      try
        Result := SHBrowseForFolder(BrowseInfo) <> nil;
      finally
        EnableTaskWindows(WindowList);
      end;
      if Result then ComputerName := StrPas(CName);
    end;