На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА
Прежде чем задать вопрос, зайдите в раздел FAQ, возможно там уже есть ответ на него.
Если вы хотите вставить код в сообщение, то пожалуйста выделяйте его тегом [code=dfp] ... [/сode].
Для этого используйте кнопку [code=dfp] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Delphi for PHP.
Модераторы: ViktorXP, vicis
  
> panel->include , в дизайн тайме корокозяблы
    такая вот проблема
    с настройками
    Unit1->Encoding = Unicode (UTF-8) |utf-8
    Unit2->Encoding = Unicode (UTF-8) |utf-8
    IDE/Tools/Options/Default Charset = utf-8 (Language = "utf-8")
    IDE/Tools/Options/Editor options/Text encoding = utf-8

    - ставим panel1 на форму unit1
    - в инспекторе пишем panel1->caption = 'Тра-та-та'
    - ставим panel2 на форму unit2
    - в инспекторе пишем panel2->include = unit1

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

    есть мысли ?

    это во второй версии

    Эта тема была разделена из темы "Delphi for PHP"
      Проблема в самой IDE
      она видать еще не полноценно переведена под утф-8 (хотя я бы зделал выбор на их месте. а то когдануже проект на анси кодировке то писать не очень добно)

      если быть точным то он не правильно отображает страничку (ведь он каждый компонент обрабатывает показывает в какомто окне браузера (для нас он не видем) скриншотит картинку и выводит ее в позицыю компонента)

      можна оставить все как есть а можно попытатся поковырятся и подключать както по другому модуль
      подключение идет тут: Файл extctrls.inc.php класс CustomPanel
      ExpandedWrap disabled
        ....
        class CustomPanel extends CustomControl
        {
        ...
                        if ($this->_include!="")
                        {
                            include($this->_include);
                        }
        ....
      если бы он предоставлял такиеже возможности ToolsAPI как и в Делфи вин32 то можно былобы попытатся это решить, но тут очень скупой открытый интерфейс.

      Добавлено
      Проблема решается следущим образом
      добавляется в модуль extctrls.inc.php две процедуры
      ExpandedWrap disabled
        function get_include_contents($filename) {
            if (is_file($filename)) {
                ob_start();
                include $filename;
                $contents = ob_get_contents();
                ob_end_clean();
                return $contents;
            }
            return false;
        }
         
        function GetANSI($str)
        {
            $charset = 'windows-1251';
            $_encoding = mb_detect_encoding($str, "UTF-8, $charset");
            if (strcasecmp($_encoding, 'UTF-8')==0)
            {
              return mb_convert_encoding($str, $charset, $_encoding);
            } else
            {
              return $str;
            }
        }
      потом переписываем кусок
      ExpandedWrap disabled
                        if ($this->_include!="")
                        {
                            include($this->_include);
                        }
      на
      ExpandedWrap disabled
                        if ($this->_include!="")
                        {
                          if (($this->ControlState & csDesigning) != csDesigning)
                          {
                            include($this->_include);
                          }
                          else
                          {
                            $string = get_include_contents($this->_include);
                            echo GetANSI($string);
                          }
                        }
      тоесть когда код будет в дизайн тайме выводится то наша процедура будет его перекодировать в анси, а когда на сервере как сайт то будет выводится без переделки. все это зделано только под утф-8. кому нужно будет больше то можете расшырить (можна канешно помучатся и автоматом распознавать больше кодировок)
      Сообщение отредактировано: ViktorXP -
        Цитата ViktorXP @
        Проблема решается следущим образом
        добавляется в модуль extctrls.inc.php две процедуры...

        спасибо, помогло
        только нужно в инспекторе очистить свойство include и по новой указать нужный модуль
        что бы передёрнуло
          не обязательно. нажимаеш на контрол правой кнопкой и из контекстного меню выбираеш control->repain
            Цитата ViktorXP @
            не обязательно. нажимаеш на контрол правой кнопкой и из контекстного меню выбираеш control->repain

            да, действительно
            а я думал, что если перезапустить IDE то оно само
            т.е. это не repaint, а по сути rebuild
            при этом при закрытии Delphi4Php он unit не сохраняет и после перзапуска теже но в профиль
              Цитата vicis @
              т.е. это не repaint, а по сути rebuild
              Нет. эта команда заставляет перерисоватся компонент. и только тот который веделеный. Посути правильно что оно само не перерисовывается по любому поводу, ты представь что б тогда было (если учесть что некоторые компоненты он перерисовывает гдето по пол секунды, пр иэтом может моргать перерисовка всей IDE)

              Добавлено
              там еще какоято комбинацыя клавиш есть, которая делает тоже самое. если я не ошибаюсь то Контрл+Шифт+Ф12
              (дома посмотрю и скажу точно если ошибся, просто на работе этой ИДЕ нет)
                Цитата ViktorXP @
                там еще какоято комбинацыя клавиш есть, которая делает тоже самое. если я не ошибаюсь то Контрл+Шифт+Ф12

                вопрос конечно не в эте ветку, но актуальный

                ты не знаеш случайно такую же комбинацию, но для Delphi-7 :huh:

                ситуация такая
                фрейм1 на главной форме, а он в свою очередь содержит ещё один фрейм2

                ставим на фрейм2 DBGrid и туда добавляем в редакторе колонок несколько колонок
                ставим им нужный размер и имена

                всё видим в главной форме, но в какой то момент связь нарушается
                (скорее всего после редактирования колонок в самом фрейме1 или в его экземпляре на главной форме)

                так вот вернуть к оригинальному состоянию (если его редактировали на главной форме) экземпляр фрейма на главной форме
                можно правой кнопкой мыши на нём
                командой Revert To Inherited
                но этой команды нет если выбирать меню на самом фрейме1
                и таким образом его никак не получается вернуть к состоянию равному фрейму2 (если фрейм1 редактировался) :wall:

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

                надеюсь понятно объяснил 8-)
                  чесно не знаю. в большей степени я пытаюсь не изменять фреймы там куда я их положил ибо потом на форме они не реагируют когда из изменяеш. (особенно если вешать на их события) хотя с событиями у во фреймах вабще проблема
                    ну если по минимуму менять там где вставил, а лучше привязку событий в код вписать,
                    то можно спокойно обновлять их командой Revert To Inherited
                    кроме того случая что я описал
                    а обойтись без них тяжело
                    помогают

                    ладно, не будем засорять ветку
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0351 ]   [ 15 queries used ]   [ Generated: 27.04.24, 15:18 GMT ]