При разработке web приложений с помощью DelphiForPhp иногда необходимо дать пользователю системы возможность просматривать в приложении какой либо директорий.  Для этой цели предлагаю вашему вниманию простой компонент, который отображает нужный директорий.

Название компонента aListDir. Он создан на базе компонента ListBox, т.е. имеет все его свойства плюс дополнительные:
DirName                  – путь к директорию, который нужно отобразить;
ShowParentDir     - признак необходимости отображения вышестоящего директоря (если отображать то компонент выведет ..);
ShowDirHandle    – признак необходимости отображения строки о заголовке;
ShowFileCaption – признак необходимости отображения строки о файлах;
FileCaption            – текст строки о файлах;
DirCaption             – текст строки о заголовке;

Для того что бы отобразить список файлов в каком либо директории нужно поставить компонент на форму и установить свойство DirName:
Например так: $this->aListDir1->DirName = ‘c:’

Текст компонента в файле aitListDirPack.inc.php
Текст пакета в котрый входит компонент в файле aitListDir.package.php

Для того что бы установить компонент в IDE DelphiForPhp нужно скопировать с этой страницы тексты файлов и записать их в виде одноимённых файлов в директорий:
для 1-й версии DelphiForPhp   С:\Program Files\CodeGear\Delphi for PHP\1.0\vcl\myComponents 
для 2-й версии DelphiForPhp   С:\Program Files\CodeGear\Delphi for PHP\2.0\vcl\myComponents
Инсталлируйте пакет стандартным образом и компонент aListDir появится в группе компонент AIT.

Файл aitListDirPack.inc.php
<?php
        //Includes
        require_once(»vcl/vcl.inc.php»);
        use_unit(»stdctrls.inc.php»);

        //Class definition
        class aListDir extends ListBox
        {

            protected $DirName = «.»;
            function getDirName()             { return $this->DirName; }
            function setDirName($value)       { $this->DirName = $value; }

            protected $ShowParentDir = «true»;
            function getShowParentDir()             { return $this->ShowParentDir; }
            function setShowParentDir($value)       { $this->ShowParentDir = $value; }

            protected $ShowDirHandle = «true»;
            function getShowDirHandle()             { return $this->ShowDirHandle; }
            function setShowDirHandle($value)       { $this->ShowDirHandle = $value; }

            protected $ShowFileCaption = «true»;
            function getShowFileCaption()             { return $this->ShowFileCaption; }
            function setShowFileCaption($value)       { $this->ShowFileCaption = $value; }

            protected $FileCaption = «Files:»;
            function getFileCaption()             { return $this->FileCaption; }
            function setFileCaption($value)       { $this->FileCaption = $value; }

            protected $DirCaption = «Directory handle:»;
            function getDirCaption()             { return $this->DirCaption; }
            function setDirCaption($value)       { $this->DirCaption = $value; }

            function __construct($aowner = null)
            {
                parent::__construct($aowner);
            }

            function dumpContents()
            {
                $xitems=array();

                $handle=opendir($this->DirName);
                if ($this->ShowDirHandle==’true’)
                  $xitems[]= $this->DirCaption.» $handle»;
                if ($this->ShowFileCaption==’true’)
                  $xitems[]= $this->FileCaption;
                while ($file = readdir($handle))
                  {
                  if ($this->ShowParentDir==»false»)
                    {
                    if ($file != «.» && $file != «..»)
                      $xitems[]= «$file»;
                    }
                    else
                    $xitems[]= «$file»;
                  }
                closedir($handle);

                $this->Items=$xitems;
                parent::dumpContents();
            }
        }

?>

 Файл aitListDir.package.php
<?php
  require_once(»vcl/vcl.inc.php»);
  use_unit(»designide.inc.php»);

    setPackageTitle(»AIT Components – AIT-2″);
  //Change this setting to the path where the icons for the components reside
  setIconPath(»./icons»);

  //Change yourunit.inc.php to the php file which contains the component code
  registerComponents(»AIT»,array(»aListDir»),»myComponents/aitListDirPack.inc.php»);
  registerPropertyValues(»aListDir»,»ShowParentDir»,array(’true’,'false’));
  registerPropertyValues(»aListDir»,»ShowDirHandle»,array(’true’,'false’));
  registerPropertyValues(»aListDir»,»ShowFileCaption»,array(’true’,'false’));
?>

Скчать компонент aListDir