На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА
Прежде чем задать вопрос, зайдите в раздел FAQ, возможно там уже есть ответ на него.
Если вы хотите вставить код в сообщение, то пожалуйста выделяйте его тегом [code=dfp] ... [/сode].
Для этого используйте кнопку [code=dfp] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Delphi for PHP.
Модераторы: ViktorXP, vicis
  
> Не могу получить объект
    Здравствуйте.

    Autorizer_form.php, DB_module.php, Main_form.php (в порядке создания).

    В DB_module есть функция
    ExpandedWrap disabled
      function GetDB_module()
      {
        global $DB_module;
        return $DB_module;
      }


    В Autorizer_form есть функция
    ExpandedWrap disabled
      function bt_okClick($sender, $params)
             {
              try
              {
                $usr = $this->le_usr->Text;
                $pwd = $this->le_pwd->Text;
       
                $DB_con = GetDB_module()->Hostel_con;
                $DB_con->UserName     = $usr;
                $DB_con->UserPassword = $pwd;
                $DB_con->Connected    = true;
       
                setcookie('usr', $usr);
                setcookie('pwd', $pwd);
       
                redirect("Main_form.php");
              }
              catch (Exception $e)
              {
                echo "Ошибка";
                echo $e;
              }
             }


    В Main_form есть функция
    ExpandedWrap disabled
      function bt_facultetClick($sender, $params)
             {
              $usr = $_COOKIE['usr'];
              $pwd = $_COOKIE['pwd'];
              try
              {
                $Q_fac = GetDB_module()->Q_facultet;
                if (isset($Q_fac))
                  $Q_fac->Open();
                else
                  echo "Error Q_fac";
              }
              catch (Exception $e)
              {
                echo "Ошибка";
                echo $e;
              }
             }


    В DB_module: Q_facultet это IBQuery, Hostel_con это IBDatabase.

    Проблема заключается в том, что из первой формы получение объектов DB_modul'я с помощью функции GetDB_module() происходит корректно. А из Main_form получаю NULL.
    У обоих форм стоит require_once("DB_Module.php");

    Есть какие-нить соображения или наставления, уважаемые?
      прикрепи полный пример. просто из этого мало что понятно.
        для начала уровняй пример
        т.е. вызови тот же объект и тем же кодом что и в работающем модуле
          Цитата vicis @
          для начала уровняй пример
          т.е. вызови тот же объект и тем же кодом что и в работающем модуле


          Это уже пробовал, результат отрицательный.

          Цитата ViktorXP @
          прикрепи полный пример. просто из этого мало что понятно.


          Пример прикреплен.
          Прикреплённый файлПрикреплённый файл2.zip (4.23 Кбайт, скачиваний: 93)
            Ни у кого нет соображений? Может это глюк D4php? Или что нить еще?
              у меня в обоих модулях дало результат null
              а ошибка банальная. Регистры букв
              ExpandedWrap disabled
                function GetDB_module()
                {
                  global $DB_Module; // было DB_module
                  return $DB_Module; // было DB_module
                }
                Цитата ViktorXP @

                Спасибо! Как делфист, я не различаю регистр, и как правило - забыл...
                  Цитата Gluckodrom @
                  Спасибо! Как делфист, я не различаю регистр, и как правило - забыл...

                  бывает
                  помогает копирование - точно не промажеш
                    Теперь не могу изменить высоту и ширину компонента Window через js.
                    Делаю и так:
                    ExpandedWrap disabled
                      document.getElementById("Window1").Height = 600;
                      document.getElementById("Window1").Width = 800;


                    ... и так...
                    ExpandedWrap disabled
                      document.getElementById("Window1").style.Height = 600;
                      document.getElementById("Window1").style.Width = 800;


                    и уже с бубном начал танцевать, используя DialogHeight. Но ничего не получилось.

                    И еще второй вопрос /сразу же здесь задам/: как получить сообщение об ошибке в случае ошибки хранимой процедуры, которое выдает сама база (триггер, exception)?
                      Цитата Gluckodrom @
                      Теперь не могу изменить высоту и ширину компонента Window через js.


                      ExpandedWrap disabled
                                       function Button2JSClick($sender, $params)
                                       {
                         
                                       ?>
                                       //Add your javascript code here
                                       Window1.setWidth(300);
                                       Window1.setTop(3);
                         
                                       <?php
                         
                                       }



                      Цитата Gluckodrom @
                      И еще второй вопрос /сразу же здесь задам/: как получить сообщение об ошибке в случае ошибки хранимой процедуры, которое выдает сама база (триггер, exception)?

                      а твой код из этого сообщения Синтаксис SQL запроса с параметром (сообщение #2565397)
                      не проходит ?

                      здесь ещё посмотри
                      http://forums.delphi-php.net/embarcadero-public-delphiphp-database/4600-check-if-database-component-connected.html
                        Цитата vicis @
                        Window1.setWidth(300);

                        Благодарствую за подсказку! как ты смотришь доступные свойства/методы? или на угад?!

                        Цитата vicis @
                        а твой код не проходит ?

                        Нет, он выводит ВСЮ огромную ошибку, и там просто каша.

                        Цитата vicis @
                        здесь ещё посмотри
                        http://forums.delphi-php.net/embarcadero-p...-connected.html

                        Самое оно! В точку! Спасибо!
                        ExpandedWrap disabled
                          catch (EDatabaseError $e)
                          Цитата Gluckodrom @
                          как ты смотришь доступные свойства/методы? или на угад?!

                          можно наугад
                          например, если просто поставить на форму компонент Window и на него Memo
                          а потом посмотреть исходный код страницы в браузере
                          то можно найти немало познавательного
                          (объект же как то создаётся и позицирнируется при этом)

                          ExpandedWrap disabled
                            <script type="text/javascript">
                              var d = qx.ui.core.ClientDocument.getInstance();
                              var Window1 = new qx.ui.window.Window("Window1", "icon/16/apps/accessories-disk-usage.png");
                              Window1.setLocation(165, 173);
                              Window1.setWidth(355);
                              Window1.setHeight(267);
                              Window1.setModal(false);
                              Window1.setResizeable(true);
                              Window1.setMoveable(true);
                              Window1.setMoveMethod("opaque");
                              Window1.setResizeMethod("frame");
                              Window1.setShowClose(true);
                              Window1.setShowMinimize(true);
                              Window1.setShowMaximize(true);
                              Window1.setShowIcon(true);
                              Window1.setShowCaption(true);
                              Window1.setShowStatusbar(false);
                              var container = new qx.ui.basic.Atom("<textarea id=\"Memo1\" name=\"Memo1\" style=\" font-family: Verdana; font-size: 10px;  height:88px;width:185px;\"    tabindex=\"0\"    wrap=\"virtual\"></textarea>");
                              container.setLeft(93);
                              container.setTop(41);
                              container.setWidth(185);
                              container.setHeight(89);
                              Window1.add(container);
                              container.addEventListener("appear", function(e) {  }, container);
                              d.add(Window1)
                              Window1.open();
                            </script>


                          ну и более правильный путь - открыть мурзилку с описанием API

                          т.к. компонент наш создан на базе qx
                          (это видно по данной строке
                          ...
                          var d = qx.ui.core.ClientDocument.getInstance();
                          ...
                          )

                          то это значит, что искать нужно на сайте http://qooxdoo.org
                          а это уже поиском в интернете
                          или почитать в описании DelphiForPhp что за библиотеки используются

                          на сайте же http://qooxdoo.org
                          ищем описание API
                          находим здесь http://demo.qooxdoo.org/current/apiviewer/#qx
                          вводим там в интерфейсе в поиск строку qx.ui.window.Window (см код выше)
                          видим результат поиска и тыкаем в него
                          получаем страницу с методами и другой информацией
                          ищем функцию похожую на установку ширины (включаем интуицию)
                          находим много вкусных функций, но нашей нет
                          тогда переходим к предкам
                          трусим их с пристрастием
                          первый там qx.ui.core.Widget
                          много интересных функций, конспектируем на будущее, но нашей опять нет
                          пытаем следующего
                          и опа...
                          у товарища qx.ui.core.LayoutItem
                          есть нужная функция setWidth(x);
                          проверяем - работает
                          контрольный выстрел:
                          setMinWidth(Integer value) - установка минимальной ширины, тип а Constraints в Delphi
                          работает...
                          1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                          0 пользователей:


                          Рейтинг@Mail.ru
                          [ Script execution time: 0,0467 ]   [ 14 queries used ]   [ Generated: 23.05.24, 05:38 GMT ]