внимательный-невнимательный, но допустим и я не вижу в теме описания практической пользы. можно на конкретном примере?
Есть большая польза, вот пример применения Код (Text): use \WPD\Vcl\Forms\TApplication; use \WPD\System\TObject; use \WPD\Vcl\Forms\TForm; Use \WPD\sSkinManager\TsSkinManager; Use \WPD\sSkinProvider\TsSkinProvider; $NewForm = new TObject(); $TApplication = new TApplication(null); $TApplication->Initialize(); $TApplication->CreateForm((New TForm)->AsInstance->MetaclassType, $NewForm); $Button1 = new TButton($NewForm); $Button1->parent = $NewForm; $Button1->Caption = 'Вот и кнопа'; $Button1->Top = 10; $Button1->Left = 20; $sSkinManager1 = new TsSkinManager($NewForm); $sSkinProvider1 = new TsSkinProvider($NewForm); $sSkinProvider1->SkinData->FSkinManager = $sSkinManager1; $sSkinManager1->SkinName = 'Light Board.asz'; $sSkinManager1->UpdateSkin(true); $NewForm->Caption = 'Заголовок формы'; $NewForm->Width = 240; $NewForm->Height = 320; $TApplication->Run();
в этом листинге тоже ничего необычного. можно простыми русскими словами пояснить в каком месте и какая нестандартная МАГИЯ происходит?
Именно в этом (New TForm)->AsInstance->MetaclassType Или в этом $sSkinProvider1->SkinData->FSkinManager = $sSkinManager1; Этих свойств, AsInstance, MetaclassType, SkinData, FSkinManager. Нету вообще в классе То есть, он служит для облегченного управления классами другого ООП Добавлено спустя 33 минуты 27 секунд: Сделал так, но для get нужно вызывать WPDGet, может что-то можно придумать ? Код (Text): private $Get; public function __get($Name) { $this->$Name = $this->WPD__Properties($Name); return $this; } public function __set($Name, $v) { if( is_array($v)) { if ($v !== false) $this->Get = (($v[1] == 7) && ($v[1] == 19)) ? PropertiesValueWPD($v, $Name) : $v; else $this->Get = null; } else $this->WPD__Properties($Name, [$v]); } function WPDGet() { return $this->Get; }