Ноя
Компонент aListDir для DelphiForPhp (визуализация содержимого директория на сервере)
При разработке web приложений с помощью DelphiForPhp иногда необходимо дать пользователю системы возможность просматривать в приложении какой либо директорий. Для этой цели предлагаю вашему вниманию простой компонент, который отображает нужный директорий.
Название компонента aListDir. Он создан на базе компонента ListBox, т.е. имеет все его свойства плюс дополнительные:
DirName – путь к директорию, который нужно отобразить;
ShowParentDir - признак необходимости отображения вышестоящего директоря (если отображать то компонент выведет ..);
ShowDirHandle – признак необходимости отображения строки о заголовке;
ShowFileCaption – признак необходимости отображения строки о файлах;
FileCaption – текст строки о файлах;
DirCaption – текст строки о заголовке;
Для того что бы отобразить список файлов в каком либо директории нужно поставить компонент на форму и установить свойство DirName:
Например так: $this->aListDir1->DirName = ‘c:’
- Использование компонента aListDir
- Свойства компонента aListDir
Текст компонента в файле 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’));
?>