发信人: leezy (【HIT】穆子), 信区: BorlandDev
标  题: 怎样将IE收藏夹的内容转录到TTreeView控制中
发信站: 哈工大紫丁香 (2002年01月19日15:52:14 星期六), 站内信件

摘 要:将IE收藏夹的内容用两个TTreeView表现出来,一个TTree
关键字:收藏夹、TTreeView、IE
类 别:网络
我们如何取得IE收藏夹的内容,并将其用一个TTreeView表示出来呢?在下面我将自己实
现的例子贴在这儿,以让同仁参考一下:
要求:在Form中放两个TTreeView (tv_FileName, tv_URLName)控制,一个菜单并加一个
菜单项mnup_Get。
您将下面的主要代码贴到这个菜单项的OnClick事件中就行了。至如结果怎么样,嘻嘻,
你试过就知道的喔.....
如下是主要的代码
const
  IMAGENUM_BOOKCLOSE = 0; //关闭的类型标志
  IMAGENUM_BOOKOPEN  = 1; //网络地址标志
  IMAGENUM_URLPAGE   = 2; //打开的类型标志
type
  Tdlg_URLTree = class(TForm)
    tv_FileName: TTreeView;  //存放目录或文件名的控件
    tv_URLName: TTreeView;   //存放URL地址的控制
    mnup_Get: TMenuItem;     //菜单项
...
var
  dlg_URLTree: Tdlg_URLTree;
implementation
uses IniFiles;
procedure Tdlg_URLTree.mnup_GetClick(Sender: TObject);
  //取得网址的函数
  procedure FF_GetDirFileName(strPath: String;  //路径
                              tvFile, //存放目录或文件名的TTreeView控件
                              tvURL: TTreeView);  //存放URL名的TTreeView控件

  var
    intRet: Integer;
    DirInfo: TSearchRec;
    strIniFile: TIniFile;
    buffer: String;
    tnNew: TTreeNode;
  begin
    intRet := FindFirst(strPath + '\*.*', FaAnyfile, DirInfo);
    while intRet = 0 do
    begin
       if (DirInfo.Name <> '.') and   //滤掉 .目录
          (DirInfo.Name <> '..') and  //滤掉 ..目录
          (Pos('.lnk', DirInfo.Name) = 0) and  //滤掉 *.lnk文件
          (Pos('.ini', DirInfo.Name) = 0) then //滤掉 *.ini文件
       begin
         if (DirInfo.Attr and FaDirectory = FaDirectory) then
         begin
           tnNew := tvFile.Items.AddChild(tvFile.Selected, DirInfo.Name);
           tnNew.Selected := True;
           tnNew.ImageIndex := IMAGENUM_BOOKCLOSE;   //设定分类目录节点的图标

           tnNew.SelectedIndex := IMAGENUM_BOOKOPEN;
           (tvURL.Items.AddChild(tvURL.Selected, DirInfo.Name)).Selected := 
True;
           FF_GetDirFileName(strPath + '\' + DirInfo.Name, tvFile, tvURL);
         end else
             begin
               buffer := DirInfo.Name;
               Delete(buffer, Pos('.url', buffer), 4); //滤掉文件名中的 .url

               //添加名称到 tvFile中
               tnNew := tvFile.Items.AddChild(tvFile.Selected, buffer);
               tnNew.ImageIndex := IMAGENUM_URLPAGE;  //设定Web页节点的图标
               tnNew.SelectedIndex := tnNew.ImageIndex;
               //得到URL,并加入到tvURL树中
               strIniFile := TIniFile.Create(strPath + '\' + DirInfo.Name);
               buffer := strIniFile.ReadString('InternetShortcut','URL','');

               strIniFile.Destroy;
               tvURL.Items.AddChild(tvURL.Selected, buffer);
             end;
       end;
       intRet := FindNext(DirInfo);
    end;
    //重置文件名树tvFile的焦点
    if tvFile.Selected <> nil then
    if tvFile.Selected.Parent <> nil then
       (tvFile.Selected.Parent).Selected := True
    else (tvFile.Selected).Selected := False;
    //重置Web地址树tvURL的焦点
    if tvURL.Selected <> nil then
    if tvURL.Selected.Parent <> nil then
       (tvURL.Selected.Parent).Selected := True
    else (tvURL.Selected).Selected := False;
    SysUtils.FindClose(DirInfo);
  end;
var
  strURLFileName: TFileName;
  pWinDir:pchar;  //windows目录
begin
  GetMem(pWinDir, 256);
  GetWindowsDirectory(pWinDir,128);
  strURLFileName := pWinDir + '\Favorites';
  FreeMem(pWinDir);
  //取得收藏夹的内容
  FF_GetDirFileName(strURLFileName, tv_FileName, tv_URLName);
end;

--
°★.☆° .★·°∴°★.°·∴°☆ ·°∴° ☆..·°∴°.☆°★°∴°

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.230.122]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.479毫秒