На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА
Прежде чем задать вопрос, зайдите в раздел FAQ, возможно там уже есть ответ на него.
Если вы хотите вставить код в сообщение, то пожалуйста выделяйте его тегом [code=dfp] ... [/сode].
Для этого используйте кнопку [code=dfp] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Delphi for PHP.
Модераторы: ViktorXP, vicis
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Delphi for PHP (RAD PHP XE, HTML5 Builder ): Компоненты
    Внимание!
    Компоненты в 1 и 2-й версии называоись vcl (visual components library) и с одной стороны входили в стандартную поставку Delphi For Php, а с другой стороны являлись open source проектом и отдельно дорабатывались. Т.е. новые версии можно качать бесплатно с http://sourceforge.net/, а также участвовать в их разработке.
    3-я версии продукта теперь называется RadPhp XE, но компоненты там теже, что и были раньше, просто это новые версии. Компоненты теперь стали называться не vcl, а rpcl, но по прежнему их можно полностью скачать с http://sourceforge.net/.
    Переход с vcl на rcpl был осуществлён в версии 281 http://vcl4php.svn.sourceforge.net/viewvc/vcl4php?view=revision&revision=281
    На RPCL есть ещё такая ссылка http://sourceforge.net/projects/rpcl/files/?source=navbar

    По различным причинам ссылки устаревают и не все из нижеприведённых будут работать. По возможности, файлы с компонентами и их описания нужно выкладывать на этом форуме.

    &idСсылки на компоненты

    Lookup Edit Box, includeJS, Google Pagerank, Delphi for PHP extra database
    http://www.vcl4php.de/download/opensource-freeware/index.php

    Delphi for PHP extra database components (в составе DbListBox и DbComboBox)
    http://sourceforge.net/projects/vcl4php-db/

    Easygrid
    http://405hp.net/d4php/easygrid.php
    user posted image

    Platinumgrid
    http://www.platinumgrid.com/index.php
    user posted image

    Компоненты от JomiTech
    http://www.jomitech.com/index.php
    есть бесплатные

    Статья-пример создания компонента csschart в Delphi для PHP 2.0 (с исходным кодом компонента)
    1-я версия компонента http://blogs.embarcadero.com/joseleon/2008/04/24/creating-components-using-delphi-for-php/
    2-я версия компонента (добавлено свойство datasource) http://blogs.embarcadero.com/joseleon/2008/04/28/creating-components-using-delphi-for-php-ii/
    user posted image

    Три компонента на SourceForge (VCL for PHP Open Components)
    openchart
    opengrid
    openlogin (видео пример здесь)
    http://vcl4phpoc.svn.sourceforge.net/viewvc/vcl4phpoc/trunk/
    (для подключения редактора свойства Columns у компонента OpenGrid читаем ветку установить easyGrid, OpenGrid и качаем оттуда файл)

    Компоненты с форума forums.delphi-php.net
    Google Maps Ex.,
    Lookup Edit Box Component,
    Google PageRank Component
    http://forums.delphi-php.net/downloads.php?do=cat=1
      В поставке DelphiForPhp есть компоненты, которые по умолчанию не подключены к IDE
      они находятся в различных поддиректориях директория vcl (он находится там куда установили IDE)
      Эти компоненты можно подключить
      Пример подключения компонента GoogleMap смотри здесь
      http://www.delphi-php.net/getting-google-maps-example-to-work/
        Родные компоненты VCL являются opensource
        В них исправляются баги и вносятся изменения
        При этом изменения уже могут быть, а в инсталляционном пакете лежит старая версия
        Можно обновить себе версию VCL до последней из репозитария на SourceForge

        Список багов в vcl и их исправления на SourceForge http://sourceforge.net/tracker/?group_id=189419&atid=929250

        Последняя версия vcl с исправлениями http://vcl4php.svn.sourceforge.net/viewvc/vcl4php/trunk/vcl/

        Закачать (и проверять наличие новых изменений) удобнее программой TortoiseSVN

        После того как новые vcl получены нужно
        старую папку vcl переименовать (на всякий случай)
        а новую версию положить в папку vcl
        удалить все компоненты из IDE
        и подключить по новой
        пакеты подключения находятся в основном здесь
        \Program Files\CodeGear\Delphi for PHP\1.0\vcl\packages
        но некоторые пакеты есть в других папках
        Сообщение отредактировано: vicis -
          Статья про то как написать библиотеку с помощью "Delphi for Win32" и использовать ее в @Delphi for PHP@
          http://edn.embarcadero.com/article/39531
            Статья с примером о том как написать на Delphi свой редактор свойства своего компонента для DelphiForPhp
            на примере компонента OpenChart
            http://blogs.embarcadero.com/joseleon/2008/11/13/vcl-for-php-charting-components-property-editor/

            а также серия других статей о планировании и создании компонента OpenChart
            http://blogs.embarcadero.com/joseleon/2008/11/

            Создание редактора свойств компонента на DelphiForPhp
            http://www.qadram.com/vcl4php/docwiki/index.php/Component_Writer's_Guide_::_Property_Editors


            Ещё серия статей о создании компонента ZCache
            http://blogs.embarcadero.com/joseleon/2008/06/
            на базе библиотеки http://framework.zend.com/manual/en/zend.cache.html
            Сообщение отредактировано: vicis -
              Несколько неплохих компонент Ext (на базе ExtJS) (авторастяжка панелей, симпатичный грид и вывод сообщений и т.п.)
              ExtMessageBox,ExtLayout,ExtPanel,ExtGrid
              http://www.qadram.com/vcl4php/index.php?ac=2110
              про которые есть хороший видеопример
              http://www.qadram.com/vcl4php/movies/extjs/extjs_integration.html

              про ExtJS ожно прочитать здесь
              http://www.interface.ru/home.asp?artId=22109
              user posted image

              и на сайте ExtJS

              user posted image

              Сайт с компонентом что то недоступен, по этому выкладываю компонент сюда

              Прикреплённый файлПрикреплённый файлext.rar (1,91 Мбайт, скачиваний: 1724)
              Прикреплённый файлПрикреплённый файлext.r00 (1,53 Мбайт, скачиваний: 1823)
              Сообщение отредактировано: vicis -
                Компоненты Userlogin, rawinclude, rawoutput
                лежат здесь ...Program Files\CodeGear\Delphi for PHP\2.0\vcl\samples\ECommerceExample\jbsamplecomponents

                в инете они здесь
                http://vcl4php.svn.sourceforge.net/viewvc/vcl4php/trunk/website/samples/ECommerceExample/jbsamplecomponents/
                Сообщение отредактировано: vicis -
                  Компонент qxCombo
                  для создания выпадающего списка с несколькими колонками
                  качать отсюда (нужно регистрироваться на форуме) http://forums.delphi-php.net/vcl4php/4297-new-component-qxcombo.html
                  подробнее в прилагаемом примере
                  user posted image
                  Сообщение отредактировано: vicis -
                    модуль для альтернативной работы с ajax в DelphiForPhp
                    говорят работает ещё быстрее
                    http://forums.delphi-php.net/downloads.php?do=file&id=3

                    вот ещё про ускорение ajax
                    и модули (может это тоже самое - разбираемся...)
                    http://forums.delphi-php.net/javascript-ajax/1721-basic-ajax-d4php.html
                    Сообщение отредактировано: vicis -
                      ещё 2 сторонних компонента

                      ContentWindow - типа компнента Window из стандартной поставки, но позволяет указать адрес страницы, которая будет отображаться в окне с прокруткой
                      TextClock - текстовые часы
                      качать отсюда (нужно регистрироваться на форуме) http://forums.delphi-php.net/javascript-ajax/3553-frames-java.html
                      Сообщение отредактировано: vicis -
                        Ещё один сторонний компонент AjaxScripter
                        Позволяет выполнять функции через ajax
                        Пример:
                        ExpandedWrap disabled
                             function Button1JSClick($sender, $params)
                             {
                                echo $this->Button1->ajaxCall('Button1Click');
                                ?>
                                //Add your javascript code here
                                return false;
                                <?php
                             }
                           
                             function Button1Click($sender, $params)
                             {
                                //$this->AjaxScripter1->Msg = 'Message after Ajax call';
                           
                                //or
                           
                                //$script = 'window.open("http://forums.delphi-php.net","","height=300,width=400");';
                                //$this->AjaxScripter1->Script = $script;
                             }

                        качать отсюда (нужно регистрироваться на форуме) http://forums.delphi-php.net/javascript-ajax/1118-run-jsfunction-ajax.html
                        иои прикреплённый к этому посту архив

                        Добавлено
                        Модификация компонента Pager
                        качать отсюда (нужно регистрироваться на форуме) http://forums.delphi-php.net/vcl4php/3325-solved-strange-behavior-pager-component.html
                        Прикреплённый файлПрикреплённый файлajaxscripter.zip (1,88 Кбайт, скачиваний: 1064)
                          компонент GSLookupEdit

                          что то вроде лукапов в Delphi
                          качать отсюда (нужно регистрироваться на форуме) http://forums.delphi-php.net/javascript-ajax/1266-ajax-autocomplete-component-editable-combo-box.html
                            собственоо это не компонент, а несколько функций
                            здесь http://blog.onenerd.net/?p=89
                            товарищ пишет, что
                            Цитата
                            Я обнаружил, что я часто требуется доступ к VCL компонентов в JavaScript...

                            ...

                            Я создал простую библиотеку JavaScript, вы можете включить в вашу главную страницу. Она работает так: каждый раз, когда вы хотите достигнуть компонент, который является одним из компонентов VCL, можно использовать следующий синтаксис:

                            / / Пример использования (это все делать то же самое)
                            alert (control(’Edit1′).value);
                            alert (vcl(’Edit1′).value);
                            alert (vc(’Edit1′).value);
                            alert (delphi(’Edit1′).value);
                            alert (php(’Edit1′).value);
                            alert ($(’Edit1′).value);



                            библиотека в файле VCL2JS.JS

                            ExpandedWrap disabled
                              // ========================================================
                              // *** VCL2JS.JS *****
                              // BY ONENERD - Last Updated April, 2007
                              // http://blog.onenerd.net/
                              //
                              // USE AND MODIFY AS MUCH AS YOU WANT -
                              //
                              //
                              // USAGE
                              //
                              // For each VCL component, you can access it my its name
                              // in javascript like this (any of these will work):
                              // $('name')
                              // vc('name')
                              // vcl('name')
                              // php('name')
                              // delphi('name')
                              // control('name')
                              // component('name')
                              //
                              // ========================================================
                               
                              // *******************
                              //
                               
                              function $(e) { return document.getElementById(e); }
                              function vc(e) { return $(e); }
                              function vcl(e) { return $(e); }
                              function php(e) { return $(e); }
                              function delphi(e) { return $(e); }
                              function control(e) { return $(e); }
                              function component(e) { return $(e); }
                               
                              //
                              // *******************


                            ну очень крутая библиотека :rolleyes:

                            Добавлено
                            описание создания компонента PollControl
                            http://www.stevetrefethen.com/blog/page/Component2bDevelopment2bin2bDelphi2bfor2bPHP.aspx

                            user posted image
                            Сообщение отредактировано: vicis -
                              компонент CSSChart-2 (ссылка на статью по его созданию есть выше, а исходник здесь)
                              не корректно отображает большие цифры
                              график улетает в даль :angry:

                              переделал его немного:
                              - теперь максимальное значение не больше ширины компонента на форме
                              - добавлено свойство отключения url по клику на элементах графика(всё равно никуда не ведёт, нужно бы и к нему свойство прикручивать)
                              - добавлено свойство для отступа от конца шкалы, т.к. при 100% н отображается значение


                              ExpandedWrap disabled
                                <?php
                                use_unit("controls.inc.php");
                                 
                                /**
                                * A basic class to dump chart information using CSS and lists
                                */
                                class CSSChart extends Control
                                {
                                   function __construct($aowner = null)
                                   {
                                      parent::__construct($aowner);
                                 
                                      //Set the initial properties on the constructor
                                      $this->Width = 330;
                                      $this->Height = 145;
                                      $this->_data = array();
                                   }
                                 
                                 
                                   function loaded()
                                   {
                                      parent::loaded();
                                      $this->setDataSource($this->_datasource);
                                   }
                                 
                                   protected $_datasource = null;
                                 
                                   function getDatasource() { return $this->_datasource; }
                                   function setDatasource($value) { $this->_datasource = $this->fixupProperty($value); }
                                   function defaultDatasource() { return null; }
                                 
                                   protected $_labelscolumn = "";
                                 
                                   function getLabelsColumn() { return $this->_labelscolumn; }
                                   function setLabelsColumn($value) { $this->_labelscolumn = $value; }
                                   function defaultLabelsColumn() { return ""; }
                                 
                                   protected $_valuescolumn = "";
                                 
                                   function getValuesColumn() { return $this->_valuescolumn; }
                                   function setValuesColumn($value) { $this->_valuescolumn = $value; }
                                   function defaultValuesColumn() { return ""; }
                                 
                                   protected $_usehtmllink = "false";
                                 
                                   function getUseHtmlLink() { return $this->_usehtmllink; }
                                   function setUseHtmlLink($value) { $this->_usehtmllink = $value; }
                                   function defaultUseHtmlLink() { return "false"; }
                                 
                                   protected $_valueprocrezerv = 30;
                                 
                                   function getValueProcRezerv() { return $this->_valueprocrezerv; }
                                   function setValueProcRezerv($value) { $this->_valueprocrezerv = $value; }
                                   function defaultValueProcRezerv() { return 30; }
                                 
                                 
                                   function dumpHeaderCode()
                                   {
                                      parent::dumpHeaderCode();
                                 
                                      //If we have not dump the style sheet for charts yet, let's do it
                                      if(!defined('CSSCHARTS'))
                                      {
                                         define('CSSCHARTS', 1);
                                         //Note the VCL_HTTP_PATH constant
                                         echo '<link type="text/css" rel="StyleSheet" href="' . VCL_HTTP_PATH . '/csschart/csscharts.css" />';
                                      }
                                   }
                                 
                                   function dumpContents()
                                   {
                                      //Get the data to use
                                      $data = $this->_data;
                                 
                                      //If datasource is correctly assigned, we will use that data instead the Data property
                                      //On design time, we don't have access to datasource objects, so nothing to do
                                      if(($this->ControlState & csDesigning) != csDesigning)
                                      {
                                         //First, check if there is some value on the column properties
                                         if(($this->_labelscolumn != '') && ($this->_valuescolumn != ''))
                                         {
                                            //If there is a valid dataset attached
                                            if(($this->_datasource != null) && ($this->_datasource->Dataset != null))
                                            {
                                               $ds = $this->_datasource->Dataset;
                                               //If dataset is active
                                               if($ds->Active)
                                               {
                                                  $data=array();
                                 
                                                  //Iterate
                                                  $ds->first();
                                                  while(!$ds->EOF)
                                                  {
                                                     //Add the item to the array
                                                     $data[$ds->fieldget($this->_labelscolumn)]=$ds->fieldget($this->_valuescolumn);
                                                     $ds->next();
                                                  }
                                               }
                                            }
                                         }
                                      }
                                 
                                      //If there is no information to show
                                      if(count($data) == 0)
                                      {
                                         //And we are in design-time
                                         if(($this->ControlState & csDesigning) == csDesigning)
                                         {
                                            //Let's use some sample data
                                            $data = array();
                                            $data['PHP'] = 800;
                                            $data['Delphi'] = 700;
                                            $data['Java'] = 500;
                                            $data['C#'] = 400;
                                         }
                                      }
                                 
                                      echo '<ul class="chartlist">';
                                 
                                // start dop
                                     // находим максимальное число
                                      reset($data);
                                     $max_val=0;
                                      while(list($key, $val) = each($data))
                                      {
                                         if ($max_val<$val)
                                            $max_val=$val;
                                      }
                                 
                                // end dop
                                 
                                      //Iterates through the data and dump each <li> tag
                                      reset($data);
                                      while(list($key, $val) = each($data))
                                      {
                                         echo '<li>';
                                         if ($this->_usehtmllink=='true')
                                           {
                                           echo '<A HREF="">';
                                           }
                                           echo '<a>';
                                         echo $key;
                                           echo '</a>';
                                         if ($this->_usehtmllink=='true')
                                           {
                                           echo '</a>';
                                           }
                                         echo '<span class="count">' . $val . '</span>';
                                        // echo '<span class="index" style="width: ' . ($val / 10) . '%">(' . ($val / 10) . '%)</span>';
                                         echo '<span class="index" style="width: ' . ($val*100/$max_val-$this->_valueprocrezerv ) . '%">(' . ($val*100/$max_val-$this->_valueprocrezerv) . '%)</span>';
                                         echo '</li>';
                                      }
                                 
                                      echo '</ul>';
                                   }
                                 
                                   protected $_data = array();
                                 
                                   /**
                                   * Specifies the data to be use to dump the chart
                                   * @return array()
                                   */
                                   function getData() { return $this->_data; }
                                   function setData($value) { $this->_data = $value; }
                                   function defaultData() { return array(); }
                                 
                                }
                                ?>
                              Сообщение отредактировано: vicis -
                                компонент dbgridreport для печати из dbgrid
                                должен и из ListView тоже работать

                                а как насчет вывода результатов на печать? (сообщение #2601187)
                                Прикреплённый файлПрикреплённый файлdbgridrepor_component_v1_1.rar (1,71 Кбайт, скачиваний: 1114)
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0504 ]   [ 20 queries used ]   [ Generated: 28.03.24, 11:45 GMT ]